我有一个在Tomcat 7和IIS 7上运行的电子商务应用程序。源代码非常大,因此我的总体目标是实现对负载的平衡,同时对代码进行最少的更改。最好的解决方案是通过100%重新配置服务器本身。

我的10,000英尺视图如下:

           [Load balancer]
           /     |       \
[Tomcat #1]  [Tomcat #2]  [Tomcat #3]
          \      |       /
        [Hibernate cache]
                 |
         [Database Server]


注意1:在过去的负载平衡尝试中,即使将负载平衡配置为“粘性会话”,来自AoL的客户也会丢失会话(存储我们的购物车的会话)

注2:电子商务应用程序使用JBoss 1.3进行交易支持

我有两个要点:


配置Tomcat在2个或更多服务器之间复制会话状态(请参阅“注1”)
配置Hibernate在所有Tomcat服务器上使用相同的缓存


任何链接到这两点之一的链接将不胜感激。

附言我试图通过Google查找自己的信息并没有任何帮助。我使用错误的术语来描述我的解决方案吗?

最佳答案

关于(1)

我假设您已阅读Tomcat Cluster basics并按照操作方法中的步骤进行?

接下来是3种会话复制方法,以及您在群集中选择的DeltaManagerBackupManager。对于由3个服务器组成的小型集群,DeltaManager应该可以工作。

如果LB上的粘性会话丢失,是在高负载下还是一直发生?

恕我直言,转移到复制会占用大量内存,因此您应该尝试从根本上解决问题,即LB

对于(2)JBoss TreeCache有帮助吗?

07-28 08:39