分布式集群Session共享

解决方法

  1. Session Sticky
    让负载均衡器能够根据每次的请求的会话标识来进行请求的转发,这样就能保证每次都能落到同一台服务器上面。
  2. Session Replication
    即 session 复制,一般应用容器都支持 Session Replication 的方式。这种方式开销大,只适合几台机器的场景。
  3. Session数据集中存储
    是对方案 2 的优化,Session数据不保存到本机而且存放到一个集中存储的地方,如 redis。
  4. Cookie Based
    所有 session 数据放在 cookie 中。
    每种方式的具体原理及优缺点,可以查看附录1. 可以发现, 大多数情况下,方法 3 最优。

session基于redis共享有两种基本的方案

  1. 基于容器自身的扩展,比如tomcat的session-manage,以及
    https://github.com/jcoleman/tomcat-redis-session-manager.

  2. 基于spring-session的方案. spring-session的好处不仅仅是session共享,它还可以与容器解耦,应用于多终端session共享,websocket,restful api等场景。

环境

  • jdk 8 意味着老的 jar 包不能用
  • tomcat 8.5
  • spring 5
  • spring boot 2
  • maven 依赖管理。建立公司内部的私服。

技术选型要有一定的前瞻性,带来的好处大于学习成本。

参考资料

  1. 分布式集群Session共享 http://blog.csdn.net/jerome_s/article/details/52658946
  2. 单点登录实现(spring session+redis完成session共享)
    https://www.cnblogs.com/hujunzheng/p/6395966.html
  3. 使用nexus3搭建私有仓库 https://www.jianshu.com/p/dbeae430f29d
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,854评论 18 139
  • 分布式集群多个tomcat7+redis的session共享实现,科多大数据带你来看看 什么是Session/Co...
    大数据在说话阅读 1,143评论 0 10
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,351评论 11 349
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,935评论 6 342
  • 泽泽现在特别喜欢把自己喜欢的东西拿给别人吃。这个开始于元旦时,现在越来越爱玩。比如,他坐在小餐椅上,你在餐桌吃饭,...
    绵绵泽泽阅读 252评论 0 0