2

我在 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。这个配置是强制性的吗?拥有这个属性而不拥有它的后果是什么?

提前致谢。

4

1 回答 1

1

A.) 广播 IP 地址是集群节点 IP 地址,而不是多播地址。udp 包会包含这个 ip,告诉收件人是谁发送了这个包;发件人IP。如果它设置为 localhost/127.0.0.1 收件人将无法呼叫发件人,因为他们会呼叫自己。

B.) 我从来不需要添加这样的路线。对不起,说不清。没有它我会试一试。

C.) 只有“主”Liferay 应用程序需要可分发标志,因为它将处理会话。

D.) 在 web.xml 中添加标志也是如此。在上下文元素中,您可以为特定服务器覆盖此属性。如果设置了该标志,应用程序将参与会话复制,即如果平衡器将粘性会话标志设置为 false,客户端将被不断重定向,在每个节点上创建新会话。如果设置,他们也将被重定向,但保留他们的第一个会话。

于 2014-07-04T08:41:00.020 回答