我有一个在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种会话复制方法,以及您在群集中选择的DeltaManager
或BackupManager
。对于由3个服务器组成的小型集群,DeltaManager
应该可以工作。
如果LB上的粘性会话丢失,是在高负载下还是一直发生?
恕我直言,转移到复制会占用大量内存,因此您应该尝试从根本上解决问题,即LB
对于(2)JBoss TreeCache有帮助吗?