首页 > 解决方案 > 受控分区和 MapStore

问题描述

可以说,我有几个 Hazelcast 成员(服务器)分布在世界各地(例如德国、俄罗斯等)。

需要按区域在数据库中存储/拆分数据,并且所有数据都应该可以IMap通过MapStore.

我最近阅读了这篇满足我要求的文章,但我不确定会如何MapStore表现。

关键时刻是,如果(例如俄罗斯)使用(例如德国)拥有的密钥member1请求数据,将调用哪一方?IMapmember2MapStore.load()

标签: hazelcasthazelcast-imap

解决方案


您不应将同一集群的成员拆分到不同的数据中心。集群的成员依靠定期的心跳消息来检测集群的健康状况;广域网无法以一致的方式可靠地提供这些,您几乎肯定会遇到网络分区问题(脑裂综合症)。

每个数据中心(德国、俄罗斯等)都应该有一个带有特定区域地图的单独集群。然后可以将这些映射复制(WAN 复制)到远程数据中心,用于灾难恢复和提供地理上接近的服务器,以支持该区域中需要访问其他区域数据的用户。

由于数据库中的数据已经按区域拆分,因此在 Hazelcast 端匹配此拆分意味着 MapLoader 将始终从同一位置的数据库加载。


推荐阅读