基于SymmetricDS的数据同步架构

前段时间一直在调研各种数据同步工具,发现很多同步工具只能一次性导入,并不能支持增量同步,而我们需要的是支持异构数据增量同步的系统。SymmetricDS是一款基于数据库触发器的开源同步软件,支持双向增量同步,专业版还可以通过Web界面进行各种配置,使用起来还蛮方便,但是坑也不少。根据我们具体的业务场景,要从本地数据库同步数据到云端数据中心,基于SymmetricDS工具,我进行了如下图的部署架构设计:

在SymmetricDS的设计中,在两个需要同步的数据库中都需要插入它自己的表,大概48个,用来维护配置和数据信息。这样一来,我们的业务数据库就不得不被侵入,感觉上不是很好,因此在上面的架构中,我们就先在云端备份本地数据库数据,然后通过插件的形式发布消息到消息队列,再由一个消息处理程序将数据写到相应的业务数据库。

SymmetricDS有个大坑,就是后端Node安装时,在db.url自动生成后,要加上&characterEncoding=utf8,要不然本地端同步过来的含有中文字符串的字段到数据库里全是乱码,不管数据库创建时如何指定编码方式,本人在这里浪费了大把时间,说多了都是泪。更多问题的解决办法,请仔细阅读:SymmetricDS Troubleshooting,还有这里:Best-practices-using-symmetricds

发表评论

电子邮件地址不会被公开。