我需要实现分布式缓存。为此,我尝试使用Infinispan。
我有两个物理分离的节点。每个节点都位于服务器中,两台服务器可以成功相互ping通。
在配置文件" jgroups-tcp.xml" (JGroups),为了配置集群,我做了以下几点:
<TCP
bind_addr="${jgroups.tcp.address:XX.XX.AA.AA}"
bind_port="${jgroups.tcp.port:7800}"
//...
/>
<TCPPING timeout="3000"
initial_hosts="XX.XX.AA.AA[7800],XX.XX.BB.BB[7801]"
port_range="5"
num_initial_members="2"
ergonomics="false"
/>
我评论了这个元素。
使用此配置运行应用程序可在IP为XX.XX.AA.AA
的计算机上运行,但对于其他计算机XX.XX.BB.BB
则不行,我收到此错误:
org.infinispan.commons.CacheException:java.net.BindException:[TCP] /XX.XX.AA.AA不是任何本地网络接口上的有效地址。
有关信息,目前我正在使用静态主方法创建节点。所以我不认为我需要涉及JBosss配置...
非常感谢你!
答案 0 :(得分:2)
在BB节点上,你必须设置bind_addr XX.XX.BB.BB
- 我假设你已经这样做了,尽管你没有提到两种配置。但是,可能,你犯了一些错误。
如果您不想保留两个配置文件,则可以在启动JVM时在命令行上设置bind_addr="${jgroups.tcp.address}"
然后再使用-Djgroup.tcp.address=XX.XX.AA.AA
(BB.BB
。