我在同一网络中有两台服务器(10.40.20.1 和 10.40.20.2),并且集群缓存的 UDP 配置如下:
使用此配置,将在网络中创建两个集群(每个集群有一台服务器):
<UDP bind_addr="127.0.0.1" mcast_addr="212.1.2.1" mcast_port="49960"
ip_ttl="64" ip_mcast="true"
mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
loopback="false" />
使用此配置更好,使用两台服务器(10.40.20.1 和 10.40.20.2)创建一个集群
<UDP bind_addr="10.40.20.1" mcast_addr="212.1.2.1" mcast_port="49960"
ip_ttl="64" ip_mcast="true"
mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
loopback="false" />
我使用jgroups 2.4.1,为什么我必须提供真实的IP地址?
最佳答案
第一个节点绑定(bind)到 127.0.0.1
,因此它不会看到另一个节点。仅当两个节点在同一主机上运行时,这才有效。
这就是为什么您需要将 bind_addr
设置为真实的 NIC。
您还可以将 bind_addr
设置为符号名称,例如site_local
,则将选择任何站点本地 IP 地址。
或者,您可以将其设置为正则表达式,例如bind_addr=match_interface:eth0.\*
选择以 eth0
开头的任何接口(interface),或 bind_addr=match-address:192.168.5.\*
它会选择地址以 192.168.5
开头的任何 NIC。
关于java - Jgroups UDP bind_addr 创建两个集群而不是一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35792315/