分布式环境中如何解决 Session 的问题

参考链接:
https://docs.spring.io/spring-session/docs/2.2.1.BUILD-SNAPSHOT/reference/html5/guides/boot-redis.html

常见的会话解决方案

  • 粘性会话
    Sticky Session 来自一个用户的会话,尽可能落到一台机器上 如果服务器有下线,会话信息就会不存在了,用户体验差

  • 会话复制
    Session Replication 每台机器都存会话,副本信息较大,会浪费资源

  • 集中会话
    Centralized Session 使用redis,Mongodb,jdbc等来实现,推荐使用

实现原理

定制HttpSession

  • 通过定制的HttpServletRequest返回定制的HttpSession,主要是用来屏蔽差异

  • 主要的类
    -- SessionRepositoryResponseWrapper
    -- SessionRepositoryFilter
    -- DelegatingFilterProxy

示例

https://github.com/laodwh/session-demo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容