通过Java EE进行集群和负载均衡

时间:2009-12-30 12:54:09

标签: java web-applications load-balancing cluster-computing

我想通过使用Java EE开发集群和负载平衡,我想在后端使用两个Tomcats,如果任何请求到达我的应用程序,它应该根据负载因子向tomcats发送请求。我想要将故障转移和会话复制添加到我的应用程序。请建议..

  1. 我必须使用的负载平衡和群集API以及应该从哪里下载?
  2. 我可以参考哪些书来进行应用程序编程?
  3. Apache Web服务器对我的应用程序是否有用?
  4. 我必须使用哪些网站来开发我的应用程序?

4 个答案:

答案 0 :(得分:8)

  

我必须使用的负载平衡和群集API以及应该从哪里下载?

集群实际上是Java EE规范的一部分,因此容器应该为此提供支持(在此理解:集群不应该涉及到您的编程,您只需在开发Java EE应用程序时遵循一些规则)。

对于Tomcat,请查看Tomcat的Load Balancer HOW-TO,更准确地说是要为软件负载平衡实现的Tomcat Connectors文档。请注意,许多公司更喜欢并使用硬件负载平衡解决方案(使用F5 BIG-IP或Nortel Alteon等产品)。但这会有点贵。

对于负载平衡算法,通常使用简单的循环法(这是我的建议)。

对于会话故障转移部分,您需要使用Persistent Manager,很可能是 JDBC Based Store 实现。只是不要忘记制作会议Serializable中的对象。

  

我可以参考哪些书来进行应用程序编程?

不确定您的应用程序编程是什么意思,但是您提出这个问题的简单事实让我认为您不应该实现自己的解决方案,而是使用现有的解决方案(软件或硬件)。

  

Apache Web服务器对我的应用程序是否有用?

对于软件负载平衡,Apache(+ mod_jk)将是我对Web服务器的选择。请参阅前面提到的Tomcat Connectors文档。

  

我必须使用哪些网站来开发我的应用程序

同样,我不确定“开发我的应用程序”是什么意思,但到目前为止提供的链接是IMO的良好起点。如果你想更进一步,可以查看Under the Hood of J2EE Clustering(这仍然是一篇好文章,即使不是真的很新)。有关更具体的答案,请提出更具体的问题:)

答案 1 :(得分:0)

我相信Tomcat和Apache已具备此功能:

http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html

答案 2 :(得分:0)

  1. 我必须使用的负载均衡和群集API以及应该从哪里下载?根据我的经验,负载平衡最好使用F5或Cisco ACE路由器等硬件,而不是软件。
  2. 我可以参考哪些书来进行应用程序编程?见答案1。
  3. Apache Web服务器对我的应用程序有用吗?是的,将Web服务器放在DMZ中并让它将请求代理到第二个防火墙内的应用服务器是很常见的。
  4. 我必须使用哪些网站来开发我的应用程序?根据您提供的信息无法分辨。这里可能无法回答如此广泛的问题。

答案 3 :(得分:0)

有一种名为Terracotta的好产品(开源)可以让你进行聚类和平衡。 http://www.terracotta.org/

下载: http://www.terracotta.org/dl/