我在 Tomcat 7 上为集群配置 Liferay。我在网上搜索并找到了一些说明。阅读所有这些都向我提出了一些问题。如果有人帮助我,我将不胜感激。
A. 我知道通过在“${CATALINA_HOME}/conf”中的 server.xml 中插入以下行,它会使用 Tomcat 文档(链接)中描述的默认值配置 Tomcat:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
以下是一些重要的默认值:
1- 多播地址是 228.0.0.4
2- 多播端口是 45564(端口和地址共同决定集群成员资格。3-
广播的 IP 是 java.net.InetAddress.getLocalHost().getHostAddress() (确保你没有' t 广播 127.0.0.1,这是一个常见错误)
4- 侦听复制消息的 TCP 端口是 4000-4100 范围内的第一个可用服务器套接字
5- 配置了两个侦听器 ClusterSessionListener
6- 配置了两个拦截器 TcpFailureDetector 和 MessageDispatch15Interceptor
由于我的集群环境很小(两个 Tomcat 实例),我认为默认配置就足够了。
问#答。我想知道第 3 项到底是什么意思。我怎么会犯这个错误?
B. 基于上述,默认配置在 IP 地址 228.0.0.4 上使用动态集群。我认为这是一个广播地址(如果我错了,请纠正我)。如果是这样,这个链接说:
在 Linux 环境中,大多数系统内核都能够处理多播地址。但是我们需要在内核路由表中添加路由条目。
sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
问#B。这是什么意思?我怎么知道我是否应该这样做?
C. 作为集群的下一步,我需要在 Web 应用程序的 web.xml 文件中添加“<distributable/>”元素。服务器上的“${CATALINA_HOME}/webapps”文件夹中的每个 Web 应用程序都有一个 web.xml。我知道他们所有人都应该将此元素包含在会话复制中(如果我错了,请纠正我)。
问#C1。我找到了另一个以“liferay-”作为每个 Web 应用程序前缀的“web.xml”文件。是否应该将它们视为另一个 web.xml 并具有此元素?
问#C2。有没有办法在一个地方添加“<distributable/>”元素并将其应用于所有 Web 应用程序?某种父/全局“web.xml”文件?
D. 一些说明说“distributable='true'”属性应该添加到“${CATALINA_HOME}/conf/context.xml”文件中的“<Context>”元素中。有些人不指导它。
问#D。这个配置是强制性的吗?拥有这个属性而不拥有它的后果是什么?
提前致谢。