【问题标题】:Is it possible to change hazelcast cluster member(s) during runtime是否可以在运行时更改 hazelcast 集群成员
【发布时间】:2020-04-22 19:00:13
【问题描述】:

有 4 个虚拟机的 hazelcast 集群。

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

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

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

【问题讨论】:

    标签: java caching hazelcast


    【解决方案1】:

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

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

    因此,您无法以显示的方式更改配置。

    但是,根据集群中的配置设置方式,您可以添加其他成员,只要它们符合最初为加入配置建立的条件即可。因此,如果 localhost 与 join 元素的 tcpip 配置部分的条件匹配,那么您可以在 localhost 上启动一个或多个节点,它们将加入集群。当你让这些运行时,你可以一次关闭一个非本地主机成员,直到唯一运行的节点是本地主机上的节点。当每个节点关闭时,其数据将迁移到其余节点,这些节点最终都会在 localhost 上。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多