ToB企服应用市场:ToB评测及商务社交产业平台

标题: 基于Redis 的分布式 session 图解 [打印本页]

作者: 圆咕噜咕噜    时间: 3 天前
标题: 基于Redis 的分布式 session 图解
Redis 分布式 Session 工作原理

1. 传统 Session 的题目

在传统单服务器环境中,HTTP Session 存储在应用服务器的内存中。这在分布式体系中会导致题目:

2. Spring Session + Redis 解决方案

当设置了Spring Session + Redis后,体系会:
3. Redis 存储格式

Redis中的几个关键数据结构:

4. 请求处理流程

5. 技术亮点


这种计划使得Spring应用可以在分布式环境中无缝扩展,同时保持用户会话的一连性和一致性,是微服务架构中解决用户状态管理的优雅方案。

业务处理中可能发生修改 会话数量,如果有 SpringSessionFiliter 调用 SessionRepository 保存会话的变更,更新Redis 中的会话数量, HMSET 更新 会话数量,重置过期时间。
Mermind 画图代码:
  1. sequenceDiagram
  2.     participant C as 客户端
  3.     participant LB as 负载均衡器
  4.     participant F as SpringSessionFilter
  5.     participant S as SessionRepository
  6.     participant R as RedisOperations
  7.     participant RD as Redis服务器
  8.    
  9.     C->>LB: 1. HTTP请求(带SessionID Cookie)
  10.     LB->>F: 2. 转发请求到应用服务器
  11.    
  12.     F->>F: 3. 拦截请求
  13.     F->>F: 4. 从Cookie中提取SessionID
  14.    
  15.     alt 存在SessionID
  16.         F->>S: 5a. 通过SessionID获取会话
  17.         S->>R: 6a. 查询Redis中的会话数据
  18.         R->>RD: 7a. GET spring:session:sessions:{sessionId}
  19.         RD-->>R: 8a. 返回会话数据
  20.         R-->>S: 9a. 返回会话数据
  21.         S-->>F: 10a. 构建Session对象
  22.     else 不存在SessionID或会话已过期
  23.         F->>S: 5b. 创建新会话
  24.         S->>R: 6b. 在Redis中创建新会话
  25.         R->>RD: 7b. HMSET spring:session:sessions:{newId}
  26.         R->>RD: 8b. SET spring:session:sessions:expires:{newId}
  27.         R->>RD: 9b. SADD spring:session:expirations:{expireTime}
  28.         RD-->>R: 10b. 确认创建成功
  29.         R-->>S: 11b. 返回新会话ID
  30.         S-->>F: 12b. 返回新Session对象
  31.     end
  32.    
  33.     F->>+S: 13. 包装为SessionRepositoryRequestWrapper
  34.     S->>-F: 14. 返回包装后的请求对象
  35.    
  36.     F->>F: 15. 继续请求处理链
  37.    
  38.     Note over F,S: 业务逻辑处理期间可能会修改会话数据
  39.    
  40.     F->>S: 16. 保存会话变更(如有)
  41.     S->>R: 17. 更新Redis中的会话数据
  42.     R->>RD: 18. HMSET 更新会话数据
  43.     R->>RD: 19. 重置过期时间
  44.    
  45.     F->>LB: 20. 返回HTTP响应
  46.     LB->>C: 21. 转发响应
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4