在集群(多服务器)环境下,传统的将 Session 保存在单机内存中的方式会失效,因为用户的请求可能会被负载均衡器分发到不同的服务器上,导致用户在一个服务器登录后,下一次请求到了另一台服务器却显示未登录。 解决 Session 共享问题主要有以下 4 种主流方案,按推荐程度由低到高排列: --- 1. Session 复制 (Session Replication) 这是 Web 容器(如 Tomcat, JBoss)自带的功能。 原理:多台服务器之间通过网络组播(Multicast)同步 Session 数据。当一台服务器产生 Session,它会把数据复制到集群内的其他所有服务器。 优点: 无需修改代码,只需修改容器配置(如 Tomcat 的 )。 如果一台服务器宕机,其他服务器上有备份,用户无感知。 缺点: 性能差:同步数据需要消耗大量网络带宽。 扩展性差:随着节点增加,同步负担呈指数级上升,通常集群超过 4-5 台机器后性能会急剧下降。 内存浪费:每台服务器都保存所有用户的 Session,内存利用率低。 适用场景:小型集群(2-3 台机器),且不想引入外部依赖。 2. ...