分布式集群session处理方案

       在web项目中,会话管理是一个非常重要得部分;通常由符合session规范的容器来进行存储管理,因此容器一旦重启或者关闭,会话就会失效;要打造一个高可用的分布式系统,就要把session管理独立出来;

       目前主要有以下几种方案(本人已知):

       1、硬件F5

              黏性会话,硬件较贵,成本高,本人没有接触过;

       2、容器间的session共享

              容器自带该功能,配置简单,上手容易;但必须是相同的容器之间共享(例tomcat - tomcat,有限制),大量的session复制、session内容的序列化、会占用较多系统资源,影响系统性能;大量的session内容广播也容易导致网络瓶颈,引起网络拥堵(该方案缺点太多,也没有使用过);

       3、Nginx ip_hash黏性会话

              成本低,实现容易;如果出现单点故障,不会转发到正常的服务器上, 需要配合heath_check插件做健康检查;但是就算转发到健康服务器上,由于该服务器没有session,任需要用户重新登录,无法做到用户无感知;

       4、JWT(Java Web Token)

              

       5、cache db

              即cache db缓存session信息,应用服务器将session信息存在cache db中,当集群中的某一个应用服务器发生故障时,其他应用服务接收到请求后,可以从cache db中获取session,从而实现session的共享;

              a、MSM(memchached_session_manage)

              

              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值