hazelcast - 受控分区和 MapStore
问题描述
可以说,我有几个 Hazelcast 成员(服务器)分布在世界各地(例如德国、俄罗斯等)。
需要按区域在数据库中存储/拆分数据,并且所有数据都应该可以IMap
通过MapStore
.
我最近阅读了这篇满足我要求的文章,但我不确定会如何MapStore
表现。
关键时刻是,如果(例如俄罗斯)使用(例如德国)拥有的密钥member1
请求数据,将调用哪一方?IMap
member2
MapStore.load()
解决方案
您不应将同一集群的成员拆分到不同的数据中心。集群的成员依靠定期的心跳消息来检测集群的健康状况;广域网无法以一致的方式可靠地提供这些,您几乎肯定会遇到网络分区问题(脑裂综合症)。
每个数据中心(德国、俄罗斯等)都应该有一个带有特定区域地图的单独集群。然后可以将这些映射复制(WAN 复制)到远程数据中心,用于灾难恢复和提供地理上接近的服务器,以支持该区域中需要访问其他区域数据的用户。
由于数据库中的数据已经按区域拆分,因此在 Hazelcast 端匹配此拆分意味着 MapLoader 将始终从同一位置的数据库加载。
推荐阅读
- node.js - 从 Nodejs 代码生成 Microsoft Graph API 令牌
- javascript - 试图将我的 node.js 应用程序上传到 heroku,它说 Web 进程在启动后 60 秒内未能绑定到 $PORT,进程以状态 137 退出
- html - 解析 HTML 并将 PDF 写入磁盘(python)
- powershell - 无法从阈值列表中获取任何工作流
- javascript - 如何使用 Jasmine 在任何 Angular 应用程序中测试 RXJS 实用程序,如管道、跳过、点击、重试等
- python - 在 DialogFlow 中,是否可以从本地文件而不是 URL 输出图像?
- mongodb - 连接数字海洋上的mongodb服务器
- javascript - 带有数字填充的 CSS 计数器
- javascript - 异步每个系列都没有显示正确的结果,显示数组的一个元素而不是所有元素
- python - 无法从使用 Django-Allauth 创建的管理面板中删除用户