如何区分多个Tomcat集群?

如何区分多个Tomcat集群?

操作系统:Ubuntu 12.04 LTS amd64
HTTP 服务器:Apache 2.2x
雄猫:Apache 7.x
JVM:openJDK 1.7

我们需要创建一个集群 Tomcat 7 环境。我们已经阅读了很多资料,需要澄清如何区分各个集群。 我们读关于有多个集群,但我们还没有看到一个真正的例子,说明如何配置多个集群。

为了简单起见,如何配置这个环境?

Node 01 - Apache HTTP
  running mod_jk using load balancer

Node 02 - Tomcat Server
  running PROD application instance (Cluster PROD)
  running TEST application instance (Cluster TEST)
  running DEV application instance (Cluster DEV)

Node 03 - Tomcat Server
  running PROD application instance (Cluster PROD)
  running TEST application instance (Cluster TEST)
  running DEV application instance (Cluster DEV)

我们不希望会话数据在不同的集群之间共享。换句话说,我们不希望 PROD(生产)集群信息与 TEST 和 DEV 集群共享(反之亦然)。

我认为我理解这句话服务器.xml是区分每个集群实例的关键。如果我错了,请纠正我:

<Membership
  className="org.apache.catalina.tribes.membership.McastService"
  address="228.0.0.4"
  port="45564" frequency="500"
  dropTime="3000"
/>

因此,我是否只需要将地址字段更改为每个集群独有的内容?例如:

<!-- Cluster PROD -->
<Membership
  className="org.apache.catalina.tribes.membership.McastService"
  address="228.0.0.4"
  port="45564" frequency="500"
  dropTime="3000"
/>

<!-- Cluster TEST -->
<Membership
  className="org.apache.catalina.tribes.membership.McastService"
  address="228.0.0.5"
  port="45564" frequency="500"
  dropTime="3000"
/>

<!-- Cluster DEV -->
<Membership
  className="org.apache.catalina.tribes.membership.McastService"
  address="228.0.0.6"
  port="45564" frequency="500"
  dropTime="3000"
/>

还有其他建议或见解吗?

答案1

你需要阅读:http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

您已正确识别多播 IP 地址作为集群查找成员的方法。您还可以使用不同的端口。

如果您想要一个 QA 集群和一个生产集群,最简单的配置是让 QA 集群位于生产集群的单独的多播地址/端口组合上。

答案2

多个集群意味着多个 Tomcat 实例。对于您的情况,节点 02 和节点 03 将是一个集群,您无需定义另一个集群。因此,只需使用一个Cluster标记(这样,只需要一个标记),所有三个 webapps 的会话将在 tomcat 实例之间同步(为此,Membershipwebapps 必须在其 web.xml 中包含该标记)。<distributable />

相关内容