Tomcat 的 Session 管理?

发布于

一、Session 实现

Tomcat 用 StandardSession 实现 HttpSession,存在内存中,由 Manager 管理。

二、持久化

  • StandardManager:Tomcat 关闭时序列化 Session 到 SESSIONS.ser,启动时恢复。
  • PersistentManager:可把空闲 Session 保存到文件或数据库。

三、集群 Session 共享

  • 粘性会话(Sticky Session):同一用户请求固定到同一节点,无需共享,但节点宕机 Session 丢失。
  • Session 复制:节点间广播 Session,一致性好但开销大。
  • 集中存储:Session 存 Redis 等,推荐。

四、Session 超时

<session-config>
  <session-timeout>30</session-timeout>
</session-config>

五、Cookie

Tomcat 默认用 JSESSIONID Cookie 跟踪 Session,也支持 URL 重写。