操作系统: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 实例之间同步(为此,Membership
webapps 必须在其 web.xml 中包含该标记)。<distributable />