MongoShake 两区域双向同步实践
发布时间 2020年9月21日 (更新时间 2024年3月7日) • 1 分钟 读完 • 37 字MongoShake 双向同步实践
公司日本房地产业务,主要服务对象中国、港澳台地区有在日购房或移民日本需求的客户,C端数据库部署在中国,B端中介在日本,上传房源也在日本,为了保证速度,再日本也部署了一台数据服务,中介上传了新房源在日本区数据库,通过脚本代码同步到中国区,有些时候中国区下面的数据也需要同步到日本区,供日本区下管理后台读和写,也是有脚本代码同步。
通过上面介绍的脚本同步,很明细有很多缺陷,比如:同步时间问题,两库数据不一致问题。
使用 mongoshake 构建两地数据同步服务。
联系阿里云工程师,开启 Mongodb 全局 gid,拿到 gid 后根据 gid 配置到 MongoShake 里面:
这台用于处理数据同步的服务器最好单独一台,只处理这一个事物,如果这两台数据库地区一台在国内,一台在日本,经测试这台服务器最好开在日本,这样可以避免 CH 数据同步至 JP 丢包严重的问题。
当时 MongoShake 部署在国内服务器时,发现老是出现错误和丢失数据,很不稳定,经过排查是网络问题,部署在日本 ECS 服务器便解决了此问题。
截止现在(2021年11月09日18:40:44),已经平稳运行了近2年,开发时完全不用必考虑2个两个库的存在,相当舒服