Jgroups UDP bind_addr创建两个集群而不是一个集群

时间:2016-03-04 09:26:25

标签: java jgroups

我在同一网络中有两台服务器(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地址?

1 个答案:

答案 0 :(得分:1)

第一个节点绑定到127.0.0.1,因此它不会看到另一个节点。这只有在两个节点都在同一主机上运行时才有效。

这就是您需要将bind_addr设置为真实NIC的原因。

您还可以将bind_addr设置为符号名称,例如site_local,然后将选择任何站点本地IP地址。

或者,您可以将其设置为正则表达式,例如bind_addr=match_interface:eth0.\*选择以eth0开头的任何界面,或bind_addr=match-address:192.168.5.\*选择任何地址以192.168.5开头的网卡。

[1] http://www.jgroups.org/manual/index.html#Transport