多个子系统之间数据同步用什么架构或是什么框架比较合理?

时间:2022-02-02 19:55:41
每个子系统都是不同语言写的,数据库也不一样,有一些数据需要共享。某一个子系统的数据往往要及时同步到其他的子系统,请问,使用什么架构或者框架能够确保准确,及时,且便于管理。希望大神指点。

5 个解决方案

#1


语言数据库都不用,还叫子系统啊。根本就是多异构系统的数据集成问题嘛。

有钱的做法就是采购支持异构数据库的数据复制,高端的数据复制工具能支持主流数据库的相互复制。但发生冲突时往往还是要手工解决(多个系统同时对一条数据修改)。

如果需复制表数量不多,也可以在表上建立触发器,然后记录数据更新日志,写程序根据更新日志进行更新分发。这个灵活性好点,但如果表的数量太多则性能堪忧。

#2


用消息中间件吧

#3


如果你们的安全性能够用库之间的同步那最好,买一套大企业成熟的etl,安全可靠高效,可以在一个平台统一管理,大部分etl工具都是图形化,前期建设好了,后期只需要普通运维人员进行维护即可。

如果各个库之间不允许通信(尤其是某些企业的生产系统和管理系统划分非常严格,绝大部分端口受限),少量的或者增量的同步可以考虑用esb企业服务总线+webservice进行同步,这种方式对接口的管理非常直观,数据的报文也能完全监控,效率也非常高,唯一的缺点就是由于用了webservice,大量的调用可能会占用比较多的资源,设计方面一定要设计好,不然会比较坑。

#4


当然,这两种方式均是跨系统,跨平台,跨数据库的,etl支持绝大部分关系数据库(国内的 达梦数据库 都支持,当然需要他们的驱动),webservice更不用说了,完全跨平台。

#5


感谢给位的建议。目前我们这边用的是webservice,由于代码写的比较烂,所以出现了各个存储媒介中的数据不一致。

#1


语言数据库都不用,还叫子系统啊。根本就是多异构系统的数据集成问题嘛。

有钱的做法就是采购支持异构数据库的数据复制,高端的数据复制工具能支持主流数据库的相互复制。但发生冲突时往往还是要手工解决(多个系统同时对一条数据修改)。

如果需复制表数量不多,也可以在表上建立触发器,然后记录数据更新日志,写程序根据更新日志进行更新分发。这个灵活性好点,但如果表的数量太多则性能堪忧。

#2


用消息中间件吧

#3


如果你们的安全性能够用库之间的同步那最好,买一套大企业成熟的etl,安全可靠高效,可以在一个平台统一管理,大部分etl工具都是图形化,前期建设好了,后期只需要普通运维人员进行维护即可。

如果各个库之间不允许通信(尤其是某些企业的生产系统和管理系统划分非常严格,绝大部分端口受限),少量的或者增量的同步可以考虑用esb企业服务总线+webservice进行同步,这种方式对接口的管理非常直观,数据的报文也能完全监控,效率也非常高,唯一的缺点就是由于用了webservice,大量的调用可能会占用比较多的资源,设计方面一定要设计好,不然会比较坑。

#4


当然,这两种方式均是跨系统,跨平台,跨数据库的,etl支持绝大部分关系数据库(国内的 达梦数据库 都支持,当然需要他们的驱动),webservice更不用说了,完全跨平台。

#5


感谢给位的建议。目前我们这边用的是webservice,由于代码写的比较烂,所以出现了各个存储媒介中的数据不一致。