配置双节点hazelcast集群 - 避免多播

时间:2014-10-13 17:25:22

标签: hazelcast

上下文

  • Hazelcast群集的两个节点,每个节点位于一个独立的子网上,因此多播不适用于节点位置。

  • 我想使用最小的XML配置文件,比如hazelcast.xml来配置Hazelcast以使用TCP / IP连接这两个节点。理想情况下,这两个节点的IP地址目录。

问题

Hazelcast文档很好地展示了this can be achieved programatically的方式,以及hazelcast.jar/hazelcast-default.xml如何保存(可观的)默认配置。

不清楚的是:我提供的任何XML配置是否覆盖hazelcast-default.xml内的设置 - 或者只是简单地使用?

2 个答案:

答案 0 :(得分:13)

我有两个答案,并且想分享它们

  1. 与编程API一样,XML配置会覆盖hazelcast.jar/hazelcast-default.xml中的默认值,因此......

  2. 我可以在类路径中使用此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。