解决应用服务器变为集群后的Session问题

解决应用服务器变为集群后的Session问题

浏览器向应用服务器发送请求的时候,会建立一个会话,这样应用服务器根据不同的会话进行不同的操作,在会话开始时,分配一个会话标识sessinID,通过cookie把这个标识告诉浏览器,以后每次请求的时候,浏览器都会带上这个标识来告诉web服务器请求的是属于哪个会话,在web服务器上,各个会话独立存储,保存不同的会话信息,然而当我们应用服务器变为集群后,例如:有两个应用服务器A,B。浏览器请求到来时,负载均衡系统把请求分配给A服务器,session信息存储在A上,当下一次请求时,如果负载均衡系统把请求分配给B,B上没有Session信息,就会出现问题。

下面是四种解决方案:
1、session sticky
上述问题在单机系统中不会出现,而在多机系统中,要解决这个问题,可以对负载均衡系统进行设置,使每一次的请求只交给同一个应用服务器处理,
缺点:应用服务器一旦宕机,立即无法提供服务,导致可用性降低。
:负载均衡系统变为一个有状态的节点,内存消耗更大,容灾方面更麻 烦


2、session Replication
在这种方式中,不要求每一次会话请求都到达同一个应用服务器,而是在 应用服务器之间增加了一个session数据同步,使每一个应用服务器,通过同步处理,达到session数据同步,这样的话,请求无论分配到那个应用服务器上,都可以处理
缺点:只要session有变化,就需要将数据同步到其它服务器,机器越多,同步带来的开销越大,同时每个服务器的数据冗余很严重。

3、session数据集中存储
这种方案是把Session数据集中存储起来,然后应用服务器从同一个Session存储器中获取session,

4、Cookie Based

把session数据放在cookie中,然后在用服务器上从cookie中获取session数据
缺点:导致session数据暴露在客户端,使数据不安全。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值