16 分布式session和无状态的会话

在我们传统的应用中session存储在服务端,减少服务端的查询压力。如果以集群的方式部署,用户登录的session存储在该次登录的服务器节点上,如果下次访问服务端的请求落到其他节点上就需要重新生成session,这样用户需要频繁的登录。

nginx使用ip hash的方式代理服务

当nginx使用该方式代理请求转发时,相同ip的用户请求会落到相同的机器上,这样就可以避免了频繁的登录。

该方式部署简单,在nginx上做相应的配置即可。该方案缺乏容错性,如果用户请求的机器发生故障,请求就会落到其他的节点上,session就会失效。适用于发生故障对用户影响小,并且服务器发生概率低的场景。

服务端的session复制

web容器在session发生改变的时候都会把session序列号并广播到其他web容器,以此来保证session的同步。

该方案保证了容错性,如果在用户量很大的情况下网络会成为同步的瓶颈,整个集群的性能会受到严重的影响。

如果使用tomcat作为web容器的情况下,设置server.xml开启tomcat的集群同步功能

session共享

使用中间件存储session信息。一般使用redis集群或memcached,中间件一般使用集群部署的方式,防止单点故障

session持久化

把session持久化到数据库中,该方案在用户量很大的情况下会对数据库造成很大的压力

terracotta实现session复制

terracotta实现的session复制只是在session的变化部分复制到terracotta服务器,并且各个节点和terracotta保持tcp连接。这样避免了网络的压力,并实现了灾难恢复的功能。

相关推荐
zlp19926 分钟前
软考(系统架构师)-大数据篇
系统架构·软考高级·软考·系统架构师
踩着两条虫4 小时前
AI驱动的Vue3应用开发平台 深入探究(十三):物料系统之区块与页面模板
前端·vue.js·人工智能·架构·系统架构
-Da-4 小时前
【操作系统学习日记】并发编程中的竞态条件与同步机制:互斥锁与信号量
java·服务器·javascript·数据库·系统架构
wanhengidc4 小时前
云手机与模拟器的关系
大数据·运维·服务器·分布式·智能手机
roman_日积跬步-终至千里6 小时前
【2025下半年系统架构设计师案例分析】电商平台 MySQL + Redis 与缓存击穿治理
mysql·缓存·系统架构
iPadiPhone6 小时前
万亿级流量的基石:Kafka 核心原理、大厂面试题解析与实战
分布式·后端·面试·kafka
CinzWS6 小时前
中断向量表中断号与 CMSIS IRQn 映射关系深度剖析:从硬件索引到软件句柄的桥梁
arm开发·架构·系统架构·嵌入式·cortex-m3·中断
Fang fan6 小时前
Netty入门
java·开发语言·redis·分布式·python·哈希算法
roman_日积跬步-终至千里7 小时前
【系统架构设计师】2025下半年 · 系统架构设计师论文题目与考试分析
系统架构
黑棠会长21 小时前
ABP框架09.数据安全与合规:审计日志与实体变更追踪
分布式·安全·架构·c#·abp