2

我最近看到了这篇文章,讨论如何利用 mod_cluster 创建动态 Tomcat 集群。我的公司即将迈入 Amazon 的 EC2 云的第一次飞跃,并将在 Tomcat 7 上部署我们的应用程序。我们希望利用 mod_cluster 以便我们可以随着流量的增加动态扩展我们的应用程序。但是,EC2 不支持使用多播,这就是本文档让您配置集群设置的方式。

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

4

4 回答 4

4

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

多播用于 httpd 平衡器来宣传自己。新的工作节点可以获取它并向平衡器注册自己。零配置。

由于没有可用的多播,广告将关闭。你要做的就是告诉工人在哪里寻找平衡器。Httpd 平衡器的配置,与 mod_jk 不同,不需要修改(您无需指定任何有关任何工作人员的任何内容)。

对于 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>

玩得开心。

于 2012-08-23T10:22:17.303 回答
1

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

于 2012-06-07T14:20:48.730 回答
1

正如我所读到的,这篇文章的主要目标是在有大量用户在一个实例上访问应用程序时实现负载平衡。在 AWS 环境中,这可以使用 Christopher Schulz 建议的 Elastic Beanstalk 轻松实现。

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

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

于 2012-06-13T12:05:16.027 回答
1

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

你可以使用 mod_cluster ;)

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

于 2012-06-26T16:55:06.967 回答