我有一个在 Tomcat 7 和 IIS 7 上运行的电子商务应用程序。源代码非常大,所以我的总体目标是通过对代码进行最少的更改来实现一些负载平衡。最好的解决方案是 100% 重新配置服务器本身。
我的 10,000 英尺 View 将如下所示:
[Load balancer]
/ | \
[Tomcat #1] [Tomcat #2] [Tomcat #3]
\ | /
[Hibernate cache]
|
[Database Server]
注意 1:从过去的负载平衡尝试来看,来自 AoL 的客户会丢失他们的 session (我们的购物车存储的位置),即使负载平衡配置为“粘性 session ”也是如此
注 2:电子商务应用程序使用 JBoss 1.3 来支持事务
我卡在两个关键点上:
- 配置 Tomcat 以在 2 个或更多服务器之间复制 session 状态(参见“注释 1”)
- 将 Hibernate 配置为在所有 Tomcat 服务器上使用相同的缓存
任何命中这两点之一的链接都将不胜感激。
附言我自己通过 Google 查找信息的尝试没有任何帮助。我是否使用了错误的术语来描述我的解决方案?
最佳答案
关于 (1)
我假设您已经阅读了 Tomcat Cluster basics并遵循操作方法中的步骤?
接下来是 session 复制的 3 种方法以及您在集群中选择 DeltaManager
或 BackupManager
。对于 3 台服务器的小型集群,DeltaManager
应该可以工作。
如果 LB 有粘性 session 丢失,是在高负载下还是总是发生?
恕我直言,转向复制会占用大量内存,因此您应该尝试从根本上解决问题,即 LB
对于 (2) 执行 JBoss TreeCache帮助?
关于tomcat - 寻找负载平衡 Tomcat 电子商务应用程序的配置技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337450/