Below is the HazelCast Programmatic Configuration given in Documentation but it is unable to add members in HazelCast Cluster.
Config cfg = new Config();
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]