Hazelcast - 当新的集群成员合并时,新成员是否可以运行?

时间:2018-03-01 04:48:35

标签: hazelcast hazelcast-imap

当新成员加入群集时,将发生表重新分区和数据合并。

如果数据很大,我相信这需要一些时间。虽然它正在发生,缓存的状态是什么样的?

如果我使用的是嵌入式模式,它是否会阻止我的应用程序直到合并完成?或者如果我不想使用不完整的缓存,我是否需要在开始应用程序操作之前等待(以某种方式)?

1 个答案:

答案 0 :(得分:1)

分区迁移将在成员加入群集后立即开始。它不会阻止您的应用程序,因为它将在后台异步进行。

仅阻止属于迁移分区的变更操作。只读操作不会被阻止。

变异操作将获得PartitionMigrationException RetryableHazelcastException,因此将默认重试2分钟。如果您的分区大小较小,则分区的迁移将持续较短。您可以通过系统属性hazelcast.partition.count增加分区计数。

如果要在所有迁移完成之前阻止应用程序,可以检查isClusterSafe方法以确保群集中没有迁移分区。但请注意,isClusterSafe返回集群的状态而不是当前成员,因此可能无法依赖它。相反,我建议不要在分区迁移时阻止应用程序。