Session tomcat 6-群集/备份管理器

Session tomcat 6-群集/备份管理器,session,tomcat,cluster-computing,failover,Session,Tomcat,Cluster Computing,Failover,我有一个关于Tomcat6中使用BackupManager的集群(会话复制/故障转移)的问题。之所以选择BackupManager,是因为它只将会话复制到另一台服务器 我将通过下面的例子来解释我的问题 我在带有BackupManager的Tomcat6集群中设置了6个节点。前端是一台使用mod_jk并启用粘性会话的Apache服务器 每个节点每个节点有一个会话。 节点1具有来自客户端1的会话 节点2具有来自客户端2的会话 .. 现在让我们假设node1下降;假设node2是备份,node2现

我有一个关于Tomcat6中使用BackupManager的集群(会话复制/故障转移)的问题。之所以选择BackupManager,是因为它只将会话复制到另一台服务器

我将通过下面的例子来解释我的问题

  • 我在带有BackupManager的Tomcat6集群中设置了6个节点。前端是一台使用mod_jk并启用粘性会话的Apache服务器
  • 每个节点每个节点有一个会话。 节点1具有来自客户端1的会话 节点2具有来自客户端2的会话 ..
  • 现在让我们假设node1下降;假设node2是备份,node2现在有两个会话(用于client2和client1)
  • 下次client1发出请求时,会发生什么情况? Apache是否“知道”node1已关闭,是否直接向node2发送请求

    =或=

    它是否会尝试这6个实例中的每一个,并找出备份对象是谁


我对BackupManager的工作原理不太确定,我对这篇文章的解读表明,复制在识别备份方面足够智能

内存中会话复制是 跨所有服务器复制会话数据 集群中的Tomcat实例, Tomcat提供了两种解决方案, 跨所有实例的复制 在群集中或复制到 只有其备份服务器,此解决方案 提供有保证的会话数据 复制

SimpleTcpCluster使用Apache部落来维护与通信组的通信。组成员身份由Apache部落建立和维护,它处理服务器崩溃和恢复。Apache部落还为组成员之间提供了多个级别的消息传递保证。这是通过在会话内存中更新来实现的,以反映任何会话数据更改,在成员之间立即执行复制

您可以通过以下方式减少数据量: 使用备份管理器(仅发送到 一个节点,备份节点)

如果设置了
notifyListenersOnReplication=“true”
,您将能够从日志中看到这一点

另一方面,您仍然可以使用DeltaManager将集群拆分为3个域,每个域包含2台服务器

假设这些将是节点1节点2、3 4和5 6

在这种情况下-配置工作者属性将确保会话复制仅在域内发生

然后mod_jk肯定知道当node1失败时应该看哪台服务器

目前,您可以使用该域 工作者属性(mod_jk>1.2.8)到 使用 具有更大可扩展性的潜力 使用 DeltaManager(您需要配置 此应用程序的域侦听器)

还有一个更好的例子:

请参阅“域集群模型”部分。

Apache“知道”将其发送给谁的唯一方法是将其写入cookie中(与WebLogic的工作方式相同)。通过查看饼干内部,应该很容易找到这个。一旦我建立了这个,我会把我的发现传下去。谢谢