我已经为dev和QA环境配置了hazelcast,并保持hazelcast实例名称相同但组名称不同(在每个yml文件中)。这个对吗 ?此外,还有什么方法可以限制群集成员。它将仅使用端口号加入显式配置的成员。您能否指导一些示例示例。
谢谢。
答案 0 :(得分:1)
定义不同的组名称(3.y版本)或群集名称(4.y版本)是正确的方法。
如果您要坚持默认的多播加入机制(请参阅下一节),还应该更改每个Hazelcast群集(开发,质量检查,产品)的多播组(IP地址)或端口。
示例3.12.6:
Config config = new Config();
config.getGroupConfig().setName("devCluster");
config.getNetworkConfig()
.getJoin()
.getMulticastConfig()
.setMulticastGroup("224.0.190.1");
Hazelcast.newHazelcastInstance(config);
YAML:
示例4.0:
Config config = new Config().setClusterName("devCluster");
config.getNetworkConfig()
.getJoin()
.getMulticastConfig()
.setMulticastGroup("224.0.190.1");
Hazelcast.newHazelcastInstance(config);
YAML:
Hazelcast IMDG默认情况下使用多播群集发现方法。如果要通过成员的IP地址和端口指定成员,请禁用多播,而改用TCP / IP发现。
示例:
JoinConfig joinConfig = config.getNetworkConfig().getJoin();
joinConfig.getMulticastConfig().setEnabled(false);
joinConfig.getTcpIpConfig().setEnabled(true)
// either without port (then port range 5701-5703 is tried)
.addMember("172.17.0.2")
// or with the port specified
.addMember("172.17.0.3:25001")
.addMember("172.17.0.3:25002");
YAML: