【问题标题】:Tomcat Clustering ConfigurationTomcat 集群配置
【发布时间】:2014-07-04 07:05:41
【问题描述】:

我在 Tomcat 7 上为集群配置 Liferay。我在网上搜索并找到了一些说明。阅读所有这些都向我提出了一些问题。如果有人帮助我,我将不胜感激。

A.我知道通过在“${CATALINA_HOME}/conf”中的 server.xml 中插入以下行,它会使用 Tomcat 文档 (link) 中所述的默认值配置 Tomcat:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

以下是一些重要的默认值:

1- 多播地址为 228.0.0.4
2- 组播端口为 45564(端口和地址共同决定集群成员资格。
3- 广播的 IP 是 java.net.InetAddress.getLocalHost().getHostAddress() (确保你没有广播 127.0.0.1,这是一个常见的错误)
4- 侦听复制消息的 TCP 端口是 4000-4100 范围内的第一个可用服务器套接字
5- 配置两个监听器 ClusterSessionListener
6- 配置两个拦截器 TcpFailureDetector 和 MessageDispatch15Interceptor

由于我的集群环境很小(两个 Tomcat 实例),我认为默认配置就足够了。

问#答。我想知道第 3 项到底是什么意思。我怎么会犯这个错误?

B.基于上述,默认配置在 IP 地址 228.0.0.4 上使用动态集群。我认为这是一个广播地址(如果我错了,请纠正我)。如果是这样,这个link 说:

在 Linux 环境中,大多数系统内核都能够处理多播地址。但是我们需要在内核路由表中添加路由条目。

sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

Q#B。这是什么意思?我怎么知道我是否应该这样做?

C.作为集群的下一步,我需要将“”元素添加到我的 Web 应用程序的 web.xml 文件中。服务器上的“${CATALINA_HOME}/webapps”文件夹中的每个 Web 应用程序都有一个 web.xml。我知道他们都应该在会话复制中包含这个元素(如果我错了,请纠正我)。

Q#C1。我找到了另一个以“liferay-”作为每个 Web 应用程序前缀的“web.xml”文件。是否应该将它们视为另一个 web.xml 并具有此元素?

Q#C2。有没有办法在一处添加“”元素并将其应用于所有 Web 应用程序?某种父/全局“web.xml”文件?

D.一些说明说“distributable='true'”属性应该添加到“${CATALINA_HOME}/conf/context.xml”文件中的“”元素。有些人不指导它。

问#D。这个配置是强制性的吗?有这个属性而没有它的后果是什么?

提前致谢。

【问题讨论】:

    标签: tomcat tomcat7 replication session-replication


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 2016-05-22
      • 2013-11-26
      • 2016-09-22
      相关资源
      最近更新 更多