我最近遇到this article,讨论如何利用mod_cluster创建动态Tomcat集群。我的公司即将迈出第一步,进入亚马逊的EC2云,并将在Tomcat 7上部署我们的应用程序。我们希望利用mod_cluster,以便我们可以随着流量的增加动态扩展我们的应用程序。但是,EC2不支持使用多播,这是本文档配置群集设置的方式。
有没有人在EC2环境中为动态Tomcat群集设置mod_cluster?我看到很少提及利用S3存储有关集群成员的信息,但找不到任何解释如何执行此操作的文档。有没有人见过关于这个主题的任何好的文档或教程?个人经验?我很感激你能给我的任何见解。
答案 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