搜公众号
推荐 原创 视频 Java开发 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库
Lambda在线 > 也输思雪计算机之路 > 分布式系统,用户的SESSION一致性咋办?

分布式系统,用户的SESSION一致性咋办?

也输思雪计算机之路 2019-03-15
举报

    之前有大神朋友问我,他们公司web项目要弄成应用服务器集群,那么如何保证SESSION的一致性?也就是公司有很多个服务器,负载均衡处理请求,那么如果一个用户前后几次访问到的服务器不一样,那怎么保存的他的SESSION?有没什么好的办法?

    1,SESSION 复制,每个服务器都存放一份SESSION(服务器同步,可用定时任务处理,或者消息队列搞定)。

优点:简单易用

缺点:数据交互次数太频繁,当数据量大时,容易内存风暴(内存飙升卡死)

   2,SESSION sticky ,也叫SESSION黏贴,黏贴就是“胶水粘住他”,选择一台服务器存放SESSION(后续SESSION都读取和写入到该服务器),如何选择?hash算法或者直接编号(比如用编号为1的存放,ps:这里可延伸到微服务架构)

优点:简单,好迁移

缺点:代码需要修改,对存放SESSION的服务器配置要求高

   3,SESSION 集中式存储(野鸡SESSION数据库),用数据库来存放SESSION,或者用缓存来存储SESSION

优点:不需要额外服务器操作,修改代码即可,类似于操作数据库

缺点:对数据库有压力,数据量大时,处理不当会死锁

   4,cookie存储,用浏览器cookie存储,这样不论每次访问的服务器是否一样,对用户来说是透明的

优点:简单,高效

缺点:不太安全,要安全可以本地加密搞定,每次都会讲cookie传送值服务器,增加了交互流量

    你学会了吗?

    这是开胃菜,大家有想知道的某一模块内容,可以直接留言~~~

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《分布式系统,用户的SESSION一致性咋办?》的版权归原作者「也输思雪计算机之路」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

举报