Tomcat,mod_cluster和Amazon EC2?

时间:2012-06-07 14:12:49

标签: apache tomcat amazon-ec2 cloud cluster-computing

我最近遇到this article,讨论如何利用mod_cluster创建动态Tomcat集群。我的公司即将迈出第一步,进入亚马逊的EC2云,并将在Tomcat 7上部署我们的应用程序。我们希望利用mod_cluster,以便我们可以随着流量的增加动态扩展我们的应用程序。但是,EC2不支持使用多播,这是本文档配置群集设置的方式。

有没有人在EC2环境中为动态Tomcat群集设置mod_cluster?我看到很少提及利用S3存储有关集群成员的信息,但找不到任何解释如何执行此操作的文档。有没有人见过关于这个主题的任何好的文档或教程?个人经验?我很感激你能给我的任何见解。

4 个答案:

答案 0 :(得分:4)

如果您使用代理列表配置,亚马逊的EC2云中的Mod_cluster没有问题。

组播用于httpd均衡器来宣传自己。新的工作节点可以选择它并使用平衡器注册自己。 零配置。

没有多播可用,广告已关闭。你要做的是告诉工人在哪里寻找平衡器。与mod_jk不同,Httpd balancer的配置不需要修改(你没有指定任何工人的任何东西)。

对于Tomcat6:

<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener"
  proxyList="mybalacer.com:port" ...
  ...
/>

对于AS7:

<subsystem xmlns="urn:jboss:domain:modcluster:1.1">
  <mod-cluster-config advertise-socket="modcluster" proxy-list="mybalacer.com:port" ...
  ...
  </mod-cluster-config>
</subsystem>

玩得开心。

答案 1 :(得分:1)

我从未使用mod_cluster,但您可能希望查看Amazon的Elastic Beanstalk,因为您的实现是使用Java。我的理解是你编写你的webapp,把它打包成JAR,然后简单地要求亚马逊在你需要的时候给你更多的力量,而在你不需要时给你更少的力量。基本上,它是您的整个架构即服务:您只需提供WAR文件。

答案 2 :(得分:1)

正如我所读到的,本文的主要目标是在有大量用户访问实例的应用程序时实现LoadBalancing。在AWS环境中,可以使用Christopher Schulz建议的Elastic Beanstalk轻松实现。

我不确定您期待什么样的控件,但是使用Elastic Beanstalk可以控制应用程序的自动调节,负载平衡,设置最大和最小实例数,应用程序关闭时的电子邮件警报或更改为不同州。增加JVM堆空间/ permgen空间的减少。将tomcat日志旋转到S3。根据CPU利用率/网络输入/输出等修改触发器管理,切换到自定义AMI以在生产环境中进行自定义更改。

Elastic Beanstalk有很多选项可以完全控制您的应用程序。如果您对Beanstalk有任何疑问,请与我们联系。

答案 3 :(得分:1)

考虑使用jbossas 7.我认为更容易配置,更适合群集,尤其是在云端。

你可以使用mod_cluster;)

这里是群集教程:https://docs.jboss.org/author/display/AS71/AS7+Cluster+Howto