上下文
Hazelcast群集的两个节点,每个节点位于一个独立的子网上,因此多播不适用于节点位置。
我想使用最小的XML配置文件,比如hazelcast.xml
来配置Hazelcast以使用TCP / IP连接这两个节点。理想情况下,这两个节点的IP地址目录。
问题
Hazelcast文档很好地展示了this can be achieved programatically的方式,以及hazelcast.jar/hazelcast-default.xml
如何保存(可观的)默认配置。
不清楚的是:我提供的任何XML配置是否覆盖hazelcast-default.xml
内的设置 - 或者只是简单地使用?
答案 0 :(得分:13)
我有两个答案,并且想分享它们
与编程API一样,XML配置会覆盖hazelcast.jar/hazelcast-default.xml
中的默认值,因此......
我可以在类路径中使用此hazelcast.xml
建立一个非常简单的双成员集群
<hazelcast>
<network>
<join>
<multicast enabled="false"></multicast>
<tcp-ip enabled="true">
<member>192.168.100.001</member> <!-- server A -->
<member>192.168.102.200</member> <!-- server B, on separate subnet -->
</tcp-ip>
</join>
</network>
</hazelcast>
答案 1 :(得分:4)
我不熟悉hazelcast.conf文件。
最常用的是XML或Programmatic api。有关好的例子,请参阅:
https://github.com/hazelcast/hazelcast-code-samples/tree/master/network-configuration
程序化示例:
public class Main {
public static void main(String[] args){
Config config = new Config();
config.getNetworkConfig().getJoin().getTcpIpConfig().addMember("localhost").setEnabled(true);
config.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false);
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
}
}
- 不清楚的是:我提供的任何XML配置是否覆盖了hazelcast-default.xml中的设置 - 或者只是简单地使用它?
你是什么意思?如果您使用程序化API,则其余部分不相关。如果在构造HazelcastInstance时未提供显式Config对象,则使用默认机制。最终它默认为hazelcast-default.xml。