【问题标题】:j2ee session migration and session replicationj2ee 会话迁移和会话复制
【发布时间】:2012-01-08 22:42:03
【问题描述】:

来自书Head First Servlets and JSP, Second EditionP257

作者说:

但是对于每个给定的会话 ID,只有一个 HttpSession 对象 Web 应用程序,无论该应用程序分布在多少个 VM 上。

但是来自 tomcat 文档:Clustering/Session Replication HOW-TO 它确实说会话可以在多个虚拟机中复制:

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

我不知道怎么理解。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 每个单独的服务器都有 1 个HttpSession 的实例?或者 1 个集群对于给定的会话 ID 只有 1 个 HttpSession
    • 集群没有任何 Java 对象。它们仅存在于在每个应用服务器内运行的 JVM 上下文中。您不应该将“Java 对象的实例”与“它持有的数据”(状态)混淆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2011-09-16
    • 2018-04-11
    • 2010-09-26
    • 1970-01-01
    • 2014-04-25
    相关资源
    最近更新 更多