【发布时间】:2014-01-08 00:24:47
【问题描述】:
我正在通过 apache mod_jk 和 tomcat 7 为 java 应用程序提供服务。我希望能够部署一个新的应用程序实例(在单独的 tomcat 实例上),它将接受所有新会话。但是,所有现有会话将继续由旧的 Tomcat 提供服务。然后在所有用户注销或经过一段时间后,旧服务器将关闭,所有流量都将由新的 tomcat 处理(我不希望负载均衡器这样做)。这将允许我在不中断任何连接用户的情况下进行部署。
我已阅读有关 mod_jk lad balance 的信息,它提供了我需要的粘性会话,但我还没有找到如何强制从新应用程序提供所有新会话。设置轮询看起来很简单,但这不是我想要的。
所以正式的问题是:
是否有任何适用于 tomcat7/apache 的负载平衡器允许我自定义平衡规则以尊重粘性会话但优先从一个节点提供服务?
关于如何最好地实现这一点有什么想法吗?
【问题讨论】:
-
您好,tomcat 中的粘性会话由每个实例处理,因此您无法共享它们。您可能正在寻找的是一个单独的会话服务器,它保留所有会话并让负载平衡应用一种粘性会话平衡。
-
这并不能回答您的问题,但是您熟悉 Tomcat 中的Parallel Deployment 吗?这是一篇关于它的文章:objectpartners.com/2012/04/17/tomcat-v7-parallel-deployment
-
@Muel 这正是我想要的。谢谢。我没有回答我的问题,因为我问错了问题!!如果你把它作为答案,我会接受它。
-
@jdennison 很高兴它有帮助!已发布答案。 :)
标签: java apache tomcat tomcat7