我最近发布了question,并且收到了完整的答案。但是我遇到了另一个问题。
情况与我最近的question中的情况相同。
如何配置成员拥有自己的分区键?
例如DataCenterOnRussia
分区键必须始终由member1
拥有,DataCenterOnGermany
分区键必须始终由member2
拥有。
因此member2
可以使用DataCenterOnRussia
向PartitionAwareKey
请求数据。
答案 0 :(得分:1)
PartitionAwareKey的目的是为了实现数据亲缘关系……例如,由于经常一起访问客户订单,因此应将其与客户记录存储在同一分区中。
PartitionAwareKey允许将项目分组在一起,但不能指定这些项目在特定集群成员上的位置。 (我想如果有这样的事情,它可能会被称为MemberAwareKey)。
Hazelcast中的集群不是固定大小的实体;它是动态可伸缩的,因此可以添加或删除成员,并且它是容错的,因此可以丢失一个成员而不会丢失恰好在该成员上的数据。为了支持这些功能,群集必须具有随群集拓扑变化而将分区移动到其他计算机的自由。
Hazelcast建议对群集的所有成员进行类似的配置(尤其是等效的内存配置),因为这样的想法是,群集成员至少在数据存储方面可以互换。 (MemberSelector设施确实为具有不同处理能力(例如处理器核心数量)的处理系统提供了规定;但是没有类似的出口允许在指定成员上放置特定的数据条目或分区。
如果您的用例需要在计算机上进行特定放置,则表明这些计算机可能不应该属于同一群集。