我的理解是,您目前正在3台服务器上负载均衡您的负载,因此,对于我来说,您已经在做群集(可伸缩性部分),而我不确定“群集它们”的确切含义。你的意思是超越透明故障吗?
基于序列化的会话聚类:就我而言,应用程序在会话中使用了很多对象。所以我宁愿不去解决这个问题。在不久的将来,服务器的数量可能会增加到五个以上。
这只对你有用,如果你不希望你的用户在会话失败的时候松开会话。如果你真的想这样,你需要“持久性会话”(但要注意,这有性能上的成本)下,Tomcat提供several way来实现这一点:使用会话持久性和保存会话共享文件
- 系统,
- 使用会话持久性并将会话保存到共享数据库,
- 使用内存中复制。
这需要一些真正的实验台,但个人而言,内存复制是我的首选解决方案(最佳性能)。避免以任何代价序列化数据库(根据我的经验,性能很差)。
兵马俑:听起来很有趣,但购买企业许可证不是一种选择。
我想你在这里指的是他们的JVM级集群解决方案。在应用程序下面聚集JVM(vs聚集应用程序本身)是恕我直言的解决方案,当应用程序无法轻松聚集时?但是,为什么要使用提供这种功能的应用程序服务器来执行此操作?
使应用程序成为无状态:听起来很诱人,尽管它是一项工作。我很想听听它的一些设计指南和经验。
您的意思是不使用HTTPSession
?如果是,为什么?你与HTTPSession
面临什么问题?你为什么要这样做?
说实话,你试图达到的目标并不清楚。您已经有了一个可伸缩的解决方案(垂直和水平方向),没有单点故障(负载平衡器除外,但是...)以及极少数应用程序(例如关键生命应用程序,财务应用程序)确实需要透明容错换句话说,许多人可以没有生活)。此外,透明容错在性能和/或硬件方面具有不可忽视的实际成本。所以,真正的问题是:当用户放弃会话时,你的企业是否会损失那么多钱?这是关键/频繁吗?这是否有理由花钱来实现透明容错?
您的目标是什么? – 2009-10-19 16:16:30