- 粘性会话 Sticky Session
- 会话复制 Session Replication
- 集中会话 Centralized Session
集中会话
Spring Session
- 简化集群中的用户会话管理
- 无需绑定容器特定解决方案
支持的存储
- Redis
- MongoDB
- JDBC
- Hazelcast
实现原理
定制HttpSession
通过定制的HttpServletRequest返回定制的HttpSession
- SessionRepositoryRequestWrapper
- SessionRepositoryFilter
- DelegatingFilterProxy
实现
基于Redis的HttpSession
- 引入依赖
Spring-session-data-redis - 基本配置
- @EnableRedisHttpSession
- 提供RedisConnectionFactory
- 实现AbstractHttpSessionApplicationInitializer
- 配置DelegatingFilterProxy
SpringBoot对Spring Session的支持
只要在Application上加上@EnableRedisHttpSession
application.properties
spring.session.store-type=redis
spring.session.timeout=
server.servlet.session.timeout=
spring.session.redis.flush-mode=on-save
spring.session.redis.namespace=spring:session