自定义控制分区

时间:2019-06-17 08:39:02

标签: hazelcast hazelcast-imap

我最近发布了question,并且收到了完整的答案。但是我遇到了另一个问题。

情况与我最近的question中的情况相同。

如何配置成员拥有自己的分区键?

例如DataCenterOnRussia分区键必须始终由member1拥有,DataCenterOnGermany分区键必须始终由member2拥有。

因此member2可以使用DataCenterOnRussiaPartitionAwareKey请求数据。

1 个答案:

答案 0 :(得分:1)

PartitionAwareKey的目的是为了实现数据亲缘关系……例如,由于经常一起访问客户订单,因此应将其与客户记录存储在同一分区中。

PartitionAwareKey允许将项目分组在一起,但不能指定这些项目在特定集群成员上的位置。 (我想如果有这样的事情,它可能会被称为MemberAwareKey)。

Hazelcast中的集群不是固定大小的实体;它是动态可伸缩的,因此可以添加或删除成员,并且它是容错的,因此可以丢失一个成员而不会丢失恰好在该成员上的数据。为了支持这些功能,群集必须具有随群集拓扑变化而将分区移动到其他计算机的自由。

Hazelcast建议对群集的所有成员进行类似的配置(尤其是等效的内存配置),因为这样的想法是,群集成员至少在数据存储方面可以互换。 (MemberSelector设施确实为具有不同处理能力(例如处理器核心数量)的处理系统提供了规定;但是没有类似的出口允许在指定成员上放置特定的数据条目或分区。

如果您的用例需要在计算机上进行特定放置,则表明这些计算机可能不应该属于同一群集。