HazelCast Programmatic Configuration of Tcp-IP is no adding members in cluster

邮差的信 提交于 2019-11-29 18:06:27

Add this line to turn off multicast in favour of TCP,

join.getMulticastConfig().setEnabled(false);

Move this line to the end,

Hazelcast.newHazelcastInstance(cfg);

You should finish the config before building the instance.

Under Windows, the out-of-the-box configuration of Hazelcast (with empty Config) just worked.
I just had to start my Java program multiple times in parallel and the Hazelcast nodes discovered each other.

Under Linux, it was more tricky: the following is a working example - just run multiple instances of it in parallel.

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);
    }
}

Output after third execution:

[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]
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!