Tomcat群集配置

时间:2014-07-04 07:05:42

标签: tomcat tomcat7 replication session-replication

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

一个。我知道通过在“$ {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实例),我认为默认配置足够好。

,Q#甲。我想知道#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中。这意味着什么?我怎么知道我是否应该这样做?

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

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

,Q#C2。有没有办法添加“&lt; distributable /&gt;”元素在一个地方,并将其应用于所有Web应用程序?某种父/全球“web.xml”文件?

d。一些说明说“distributable ='true'”属性应添加到“&lt; Context&gt;” “$ {CATALINA_HOME} /conf/context.xml”文件中的元素。有些人没有指示它。

,Q#d。此配置是强制性的吗?拥有这个属性而不拥有它的后果是什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

B。)我从来没有必要添加这样的路线。对不起,不能告诉。如果没有它,我会尝试一下。

C。)只有&#34;主要&#34; Liferay应用程序需要可分发标志,因为它将处理会话。

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