Hazelcast 集群成员可以存在于两个单独的组中吗?
Can Hazelcast cluster members exist in two separate groups?
假设我有 4 台服务器 (1、2、3、4),它们在启用了近缓存的嵌入式模式下运行。每个服务器是 运行 一个 hazelcast 成员 jvm 和一个 hazelcast 客户端 jvm。每个服务器上的成员 jvm 定义了一个组名 A,集群成员定义为 1,2,3,4。每个服务器上的客户端 jvm 定义相同的组名 A,相同的集群成员定义为 1,2,3,4。所以配置看起来像这样:
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
现在,假设我停止了服务器 1 上的成员 jvm,将成员配置中的组名更改为 B,然后再次启动成员 jvm。第一个问题,客户端 jvm 是否会忽略该成员并仍然联系仍在其组中的成员 jvm?配置现在看起来像这样:
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
然后,假设我停止了服务器 1 上的客户端 jvm,将客户端配置中的组名更改为 B,然后再次启动客户端 jvm。第二个问题,客户端 jvm 现在只会与 B 组中的成员对话吗?现在存在以下配置会发生什么情况?
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
我最大的问题是现在群集成员 1、2、3、4 现在位于两个不同的组中会发生什么情况?
您可以在 related doc 中阅读有关 Hazelcast 集群分组的信息。
通常,组名可以创建单独的 Hazelcast 集群,即使它们位于同一发现中 space。请注意,您定义了如何发现 Hazelcast 成员(例如多播(默认情况下),或者您可以指定静态 IP 配置,或使用 discovery strategies 之一)。现在,即使可以发现成员,如果组名不同,您也可能无法加入。
因此,为了准确回答您的问题,您的客户将仅加入以下成员:
- 可以被发现并且
- 组名相同
假设我有 4 台服务器 (1、2、3、4),它们在启用了近缓存的嵌入式模式下运行。每个服务器是 运行 一个 hazelcast 成员 jvm 和一个 hazelcast 客户端 jvm。每个服务器上的成员 jvm 定义了一个组名 A,集群成员定义为 1,2,3,4。每个服务器上的客户端 jvm 定义相同的组名 A,相同的集群成员定义为 1,2,3,4。所以配置看起来像这样:
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
现在,假设我停止了服务器 1 上的成员 jvm,将成员配置中的组名更改为 B,然后再次启动成员 jvm。第一个问题,客户端 jvm 是否会忽略该成员并仍然联系仍在其组中的成员 jvm?配置现在看起来像这样:
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
然后,假设我停止了服务器 1 上的客户端 jvm,将客户端配置中的组名更改为 B,然后再次启动客户端 jvm。第二个问题,客户端 jvm 现在只会与 B 组中的成员对话吗?现在存在以下配置会发生什么情况?
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
我最大的问题是现在群集成员 1、2、3、4 现在位于两个不同的组中会发生什么情况?
您可以在 related doc 中阅读有关 Hazelcast 集群分组的信息。
通常,组名可以创建单独的 Hazelcast 集群,即使它们位于同一发现中 space。请注意,您定义了如何发现 Hazelcast 成员(例如多播(默认情况下),或者您可以指定静态 IP 配置,或使用 discovery strategies 之一)。现在,即使可以发现成员,如果组名不同,您也可能无法加入。
因此,为了准确回答您的问题,您的客户将仅加入以下成员:
- 可以被发现并且
- 组名相同