Tomcat集群配置

标签 tomcat tomcat7 replication session-replication

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

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

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

Here are some of the important default values:

1- Multicast address is 228.0.0.4
2- Multicast port is 45564 (the port and the address together determine cluster membership.
3- The IP broadcasted is java.net.InetAddress.getLocalHost().getHostAddress() (make sure you don't broadcast 127.0.0.1, this is a common error)
4- The TCP port listening for replication messages is the first available server socket in range 4000-4100
5- Two listeners are configured ClusterSessionListener
6- Two interceptors are configured TcpFailureDetector and MessageDispatch15Interceptor

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

问#答。我想知道第 3 项的确切含义。我怎么会犯这个错误?

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

In Linux Environment most of the system kernel is capable to process the multicast address. but we need to add route entry in kernel routing table.

sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

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

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

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

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

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

问#D。这个配置是必须的吗?有这个属性和没有它的后果是什么?

提前致谢。

最佳答案

A.) 广播的 ip 地址是集群节点的 ip 地址,而不是多播地址。 udp 包将包含此 ip,以告诉确实发送此包的收件人;发件人的IP。如果将其设置为 localhost/127.0.0.1,则收件人将无法调用发件人,因为他们会调用自己。

B.) 我从来不需要添加这样的路由。对不起,不能说。如果没有它,我会尝试一下。

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

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

关于Tomcat集群配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24568472/

相关文章:

java - Tomcat 6 的 JDBC 池

java - setenv.sh 中的多行 JAVA_OPTS

mysql - 如何使我的 MySQL 数据库始终可用?需要一些专家数据库建议!

java - Tomcat 可能的内存泄漏

java - Tomcat 6.0 和 7.0 在 Eclipse Luna 上启动失败

java - 在 Windows 上设置 New Relic for Railo 4.x

mysql CHANGE MASTER TO命令的MASTER_HOST的长度限制

sql-server-2005 - 数据库复制还是镜像?

maven - 如何在 Maven 中绑定(bind)两个插件

Apache tomcat部署