基于Session共享的方式解决单点登录问题

本文探讨了集群环境中实现单点登录的Session共享问题,包括Session Sticky、Session Replication、Session统一存储(如使用redis)以及Cookie Based(如JWT)四种常见方法。每种方法都有其优缺点,例如Session Sticky可能导致会话数据丢失,Session Replication增加网络开销,统一存储可能引入延迟,而Cookie Based则依赖于安全的token验证。
摘要由CSDN通过智能技术生成

本文主要讲述集群环境下解决Session共享的问题,从而实现集群环境下的单点登录。Session共享问题已经有很多解决方案,这里主要讲述常用四种方法。

Session Sticky
Session Sticky(粘性) 保证同一个会话的请求都在同一个Web服务器上处理,这样就完全不需要考虑到会话问题了。比如负载均衡算法中哈希算法就是一个典型的Session Sticky实现手段。

这种实现方式存在问题:

1)如果一台Web服务器宕机或者重启,那么这台机器上保存的会话数据都会丢失,会造成用户暂时无法访问的问题,之前的授权操作需要再执行一次;

2)通过这种方式实现的Session保持,无法进行4层网络转发,只能在7层网络上进行解析并转发。

Session Replication
Session Replication(复制)通过相关技术实现Session复制,使集群中的各个服务器保存所有节点的session数据。tomcat本身就可以实现session复制的功能,基于IP组播放方式。

这种实现方式的问题:

1)同步Session数据会造成网络开销,随着集群规模越大,同步Session带来的带宽影响也越大;

2)每个节点需要保存集群中所有节点的Session数据,就需要比较大的内存来存储。

Session统一存储
集群中的各个节点的Session数据,统一存储到一个存储设备中。客户端访问需要Session的时候,就不是从某个节点的内存中去获得,而是从相应的第三方存储中去获取。对于这个方案来说,无论是哪个节点新增或者修改了Session数据,最终都会发生在这个集中存储的地方。采用的Session存储有red

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值