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

标签 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地址?

最佳答案

第一个节点绑定(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。

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

关于java - Jgroups UDP bind_addr 创建两个集群而不是一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35792315/

相关文章:

java - 带注释的 EhCache 配置 - Hibernate

java - 将 mouselistener 添加到 JTextPane 中插入的 JLabel/JButton

java - 修复 StackedbarChart 中任意数量输入的条形图宽度和条形之间的间距

java - RMI 有多快?

java - 集群中的 JGroups ReplicatedHashMap

java - 抽象类和 toString() 方法

java - jgit - 基于文件扩展名的 git diff

java - JGroups(JChannel) 聊天应用程序无法在其他计算机上运行

ehcache - 如何集成 EhCache 2.9 和 JGroups 复制?

java - 使用 TCP 的 Ehcache Jgroups 复制在具有 2 节点集群的 AWS 云中不起作用