欢迎参与讨论一个分布式数据同步的问题!

本文讨论了一个分布式系统中主站和子站之间的数据同步问题。针对系统初始设计未充分考虑分布式特性带来的挑战,如数据ID冲突及文件同步难题,提出了通过添加唯一标识ID、设备编码和日志表来记录数据变更等方案,以实现高效的数据增量同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

还不单单是个数据库的问题,还有文件同步的问题。

背景是:一个分布式系统中,一个主站和多个子站,现在要把子站的数据同步到主站中,子站的数据包括数据库记录和大量的文件。

主站和子站都存在2个表A和表B,A和B是一对多的关系。

现在出现的问题是:由于该系统设计当初设计时未考虑到分布式设计,所以对于子站的编码也没做出规定,所以存在子站的数据id和主站的数据id相同的情况。
如果现在主站没有子站的数据,这样我们通过遍历子站导出的数据,就可以方便的把子站的数据插入到主站中,
但是如果子站对数据进行的编辑,这样主站的数据就没法更新。比如子站删除了B表中的一条数据,而这条数据曾经被导入到主站中,现在主要无法判断.因为我们是这样操作的,从子站中遍历每一条数据,如果主站没有,则插入.


目前我们系统中,由于先前没有考虑为分布式系统,所以好多表中,都没有为记录添加设备标识id。

我的思路如下:
在主站和子站数据库中,添加一个记录的id,为唯一标识的id,和子站的编码。子站中添加log表,记录每个表中数据添加、删除、更新情况,这样每次数据同步只需要从log表中导出即可。这样我们就会很方便的实现增量导出。

不知道这样思考有没问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值