0
votes

Let's say I have 4 servers (1,2,3,4) that are operating in embedded mode with near caches enabled. Each server is running one hazelcast member jvm along with one hazelcast client jvm. The member jvm on each server defines a group name of A with cluster members defined as 1,2,3,4. The client jvm on each server defines the same group name of A with the same cluster members defined as 1,2,3,4. So the config looks something like this:

server 1 - member group A - client group A - cluster members 1,2,3,4
server 2 - member group A - client group A - cluster members 1,2,3,4
server 3 - member group A - client group A - cluster members 1,2,3,4
server 4 - member group A - client group A - cluster members 1,2,3,4

Now, let's say I stop the member jvm on server 1, change the group name in the member config to B and start the member jvm again. First question, will the client jvm ignore this member and still contact the member jvms that are still in its group? The config would now look something like this:

server 1 - member group B - client group A - cluster members 1,2,3,4
server 2 - member group A - client group A - cluster members 1,2,3,4
server 3 - member group A - client group A - cluster members 1,2,3,4
server 4 - member group A - client group A - cluster members 1,2,3,4

Then, let's say I stop the client jvm on server 1, change the group name in the client config to B and start the client jvm again. Second question, will the client jvm now only talk to the member that resides within group B? What happens now that the following configuration exists?

server 1 - member group B - client group B - cluster members 1,2,3,4
server 2 - member group A - client group A - cluster members 1,2,3,4
server 3 - member group A - client group A - cluster members 1,2,3,4
server 4 - member group A - client group A - cluster members 1,2,3,4

My biggest question is what happens now that cluster members 1,2,3,4 now reside in two different groups?

1

1 Answers

0
votes

You can read about Hazelcast cluster grouping in the related doc.

In general, group names make it possible to create separate Hazelcast clusters even though they reside in the same discovery space. Note that you define how Hazelcast members can be discovered (e.g. multicast (by default), or you can specify static IP configuration, or use one of the discovery strategies). Now, even though member can be discovered, you may not join them if the group name is different.

So, to answer precisely your question, you client will join only the members that:

  • can be discovered AND
  • have the same group name