同一主机上的JGroups成员集群仅使用一个地址

时间:2015-08-23 16:32:36

标签: java jgroups

我想使用JGroups开发一些分布式应用程序。但遗憾的是,我无法在集群上获得多个成员。他们总是加入同一地址:

    this.channel = new JChannel("udp.xml");
    channel.connect("test-cluster");
    this.rpcDispatcher = new RpcDispatcher(channel, null, null, this);
    this.myAddress = channel.getAddress();

    System.out.println("joined cluster: " + channel.getView().size() + ", " + channel.getView());

当我开始两个(或更多)调试会话时,我总是会得到一个大小为1的簇。

joined cluster: 1, [Jimbo-3806|0] [Jimbo-3806]

因此,您无法从一个jvm向另一个jvm发送直接消息(因为您需要传递相同的地址)。

我正在使用与JGroups捆绑在一起的默认udp.xml。

1 个答案:

答案 0 :(得分:1)

如果其他人正面临这个问题。确保draw demo正常工作且JVM正在使用IPv4(这很重要)。就我而言,JVM坚持使用IPv6,我不得不强迫JVM使用IPv4,如下所示:

System.setProperty("java.net.preferIPv4Stack", "true");
Channel channel = new JChannel("udp.xml");
channel.connect("test-cluster");