是否可以在运行时改变榛子广播集群成员

问题描述 投票:0回答:1

有4个虚拟机的hazelcast集群。

是否可以在运行时将其成员改为localhost(无需重启)?即现在所有4个虚拟机将以127.0.0.1:5701运行,反之亦然。所有的4个虚拟机都运行在localhost上,并在运行时将它们带入集群。

通过触发一些事件并执行以下语句。hazelcastInstance.getConfig().getNetworkConfig().getJoin().getTcpIpConfig().setMembers(members)

如果是,当使用hazelcast缓存数据处理请求时,会有什么影响?

java caching hazelcast
1个回答
1
投票

大多数情况下,配置必须在集群启动前全部设置好,集群运行时对配置的更改不会生效。

(例外情况。有一些数据结构的配置更改可以添加到正在运行的群集中,关于如何动态添加配置,请参见参考手册中的配置部分)。)

所以,你不能以你显示的方式改变配置。

然而,根据集群中的配置设置方式,您可以添加额外的成员,只要它们符合最初为加入配置建立的标准。 因此,如果localhost符合join元素的tcpip配置部分的标准,那么你可以在localhost上启动一个或多个节点,它们将加入集群。 当你有这些节点运行时,你可以一次一个地关闭非localhost成员,直到只有localhost上的节点在运行。当每个节点被关闭时,它的数据将迁移到剩余的节点上,这些节点最终都将在localhost上。

在每一个时间点上,Hazelcast都会根据当前的节点成员集来响应请求--在任何一个时间点上,都会正好有一个节点是任何特定数据的所有者;当各种数据分区从远程集群节点迁移到本地集群节点时,所有权将过渡到本地节点。

© www.soinside.com 2019 - 2024. All rights reserved.