j2ee会话迁移和会话复制

时间:2011-11-29 15:27:34

标签: java session java-ee tomcat cluster-computing

从书Head First Servlets and JSP, Second Edition P257

作者说:

  

但是每个给定的会话ID只有一个HttpSession对象   网络应用程序,无论应用程序分布了多少个虚拟机。

然而来自tomcat文档:Clustering/Session Replication HOW-TO 它确实说会话可以在多个vms中复制:

  

群集已启动并将建立成员资格   (TomcatA,TomcatB)。 TomcatB现在将从a请求会话状态   集群中已存在的服务器,在本例中为TomcatA。   TomcatA响应请求,并在TomcatB开始侦听之前响应   对于HTTP请求,状态已从TomcatA转移到   TomcatB。

我不知道如何理解这一点。

1 个答案:

答案 0 :(得分:3)

只有HttpSession的状态(基本上是所有可序列化的内容)被复制才能在集群中的服务器之间保持同步,而不是对象实例本身。每个单独的服务器仍然只有一个HttpSession对象实例与每个客户端 - 服务器会话的会话ID相关联。