如何区分多个Tomcat集群?

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

我们需要创build一个集群的Tomcat 7环境。 我们已经做了大量的阅读, 需要澄清如何区分群集 。 我们读了关于多重集群,但我们还没有看到如何configuration多个集群的真实例子。

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

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集群共享(反之亦然)。

我想我明白server.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" /> 

还有其他build议吗?

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

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

如果您想要QA群集和生产群集,最简单的configuration是将QA群集放在生产群集的单独多播地址/端口组合上。

多个集群表示多个Tomcat实例。 在你的情况下,节点02和节点03将是一个集群,你不需要定义另一个集群。 因此,只能使用一个Cluster标记(因此只需要一个Membership标记),并且所有三个webapps的会话将在tomcat实例之间同步(webapps必须在其web.xml中有<distributable />标记这个)。