我通过在 server.xml 中包含 -part 来设置 tomcat 7 集群。 在文档(http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html)中它说:
The IP broadcasted is java.net.InetAddress.getLocalHost().getHostAddress() (make sure you don't broadcast 127.0.0.1, this is a common error)
不幸的是,getLocalHost().getHostAddress() 为我的所有虚拟机(Ubuntu 在 Win7 下的 Virtual Box 中运行)返回 127.0.1.1,而不是我可以访问虚拟机的正确 IP,即 10.42.29.191。
问题:
有没有办法告诉 tomcat 通过多播将什么 ip 发送给集群的其他成员?或者我可以指定(例如代码)不同的方式来获取 ip 吗?
附加信息:
我的集群似乎无法进行 session 复制,上面的“错误”可能是问题的原因。 Glassfish 也不做 session 复制,也许是同样的错误。如果您能提供有关 glassfish 配置的信息,我也会很高兴。虚拟机之间的多播根据工具iperf工作。
最佳答案
由于虚拟机是一台 Ubuntu 机器,我不得不编辑文件/etc/hosts。
像这样替换条目:
127.0.1.1 tim-VirtualBox
使用正确的 ip:
10.42.29.191 tim-VirtualBox
关于session - 如何更改tomcat集群中的广播IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16676389/