我将我的hazelcast从2.x升级到3.3.3,但当我在不同的IP上启动2台服务器时,它没有被群集。
但是当我使用2.x时它起作用了。它应该像在控制台中打印一样:
Members [1] {
Member [172.29.110.114]:5701 this
}
我尝试使用
**Hazelcast.newHazelcastInstance()**
和
**Hazelcast.newHazelcastInstance(config)**
获取HazelcastInstance以获取地图和其他分布式对象。当我使用第二个,配置作为参数时,可以打印上述消息,但不能显示其他IP节点。当我使用没有配置的第一个作为参数时,我甚至无法在控制台中看到上述消息。
任何人都知道这里发生了什么?非常感谢。
答案 0 :(得分:0)
您需要在hazelcast配置中启用多播。以下是如何使用xml配置启用它(即hazelcast.xml
):
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config http://www.hazelcast.com/schema/config/hazelcast-config-3.0.xsd" xmlns=" http://www.hazelcast.com/schema/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<network>
<join><multicast enabled="true"/></join>
<network>
</hazelcast>
然后以这种方式创建配置(hazelcast.xml
应该在类路径中):
Config config = new ClasspathXmlConfig("hazelcast.xml")
答案 1 :(得分:0)
最后,我发现了发生了什么。这都是因为防火墙。我转身关闭后,它的工作原理。只是分享我的经验。感谢Arbi的帮助。