我想使用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。
答案 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");