HazelCast Tcp-IP的编程配置无需在集群中添加成员

以下是文档中给出的HazelCast编程配置,但无法在HazelCast群集中添加成员。

Config cfg = new Config(); Hazelcast.newHazelcastInstance(cfg); cfg.setProperty("hazelcast.initial.min.cluster.size","3"); cfg.getGroupConfig().setName("DEV").setPassword("DEV-pass"); NetworkConfig network = cfg.getNetworkConfig(); JoinConfig join = network.getJoin(); TcpIpConfig tcpipConfig=join.getTcpIpConfig(); tcpipConfig.addMember("172.17.153.87").addMember("10.45.67.100") .setRequiredMember("192.168.10.100").setEnabled(true); network.getInterfaces().setEnabled(true).addInterface("10.45.67.*"); System.out.println(tcpipConfig.isEnabled()); System.out.println(tcpipConfig.getMembers()); MapConfig mapCfg = new MapConfig(); mapCfg.setName("testMap"); mapCfg.setBackupCount(2); mapCfg.getMaxSizeConfig().setSize(10000); mapCfg.setTimeToLiveSeconds(300); MapStoreConfig mapStoreCfg = new MapStoreConfig(); mapStoreCfg.setClassName("com.hazelcast.examples.DummyStore").setEnabled(true); mapCfg.setMapStoreConfig(mapStoreCfg); NearCacheConfig nearCacheConfig = new NearCacheConfig(); nearCacheConfig.setMaxSize(1000).setMaxIdleSeconds(120).setTimeToLiveSeconds(300); mapCfg.setNearCacheConfig(nearCacheConfig); cfg.addMapConfig(mapCfg); 

请查看代码,如果需要进一步修改则需要将成员添加到hazelcast集群中

添加此行以关闭多播以支持TCP,

join.getMulticastConfig().setEnabled(false);

将此行移至末尾,

Hazelcast.newHazelcastInstance(cfg);

您应该在构建实例之前完成配置。

在Windows下 ,Hazelcast(带有空Config )的开箱即用Config工作。
我只需要多次并行启动我的Java程序,并且Hazelcast节点互相发现。

在Linux下 ,它更棘手:以下是一个工作示例 – 只是并行运行它的多个实例。

 import java.util.*; import com.hazelcast.config.*; import com.hazelcast.core.*; public class NewClass { public static void main(String[] args) { Config config = new Config(); config.getNetworkConfig().setPublicAddress("127.0.0.1") .setPort(7771).setPortAutoIncrement(true); JoinConfig join = config.getNetworkConfig().getJoin(); join.getMulticastConfig().setEnabled(false); join.getAwsConfig().setEnabled(false); join.getTcpIpConfig().setEnabled(true).setMembers( Arrays.asList( "127.0.0.1:7771", "127.0.0.1:7772", "127.0.0.1:7773")); HazelcastInstance h = Hazelcast.newHazelcastInstance(config); } } 

第三次执行后输出:

 [snip] Members [3] { Member [127.0.0.1]:7771 - 18f5aada-6f00-4077-814e-337517d5c1eb Member [127.0.0.1]:7772 - e9e2e7fd-e2fe-4c56-80c5-6b499d07b2b9 Member [127.0.0.1]:7773 - 14fd377c-69fd-4c69-a9b8-086dd1cd7857 this } [snip]