系统之间的数据同步是比较容易出现问题,切难以测试。
曾经遇到的两个问题
数据库事务隔离导致的问题
按照update_time读取和作为数据版本号。但是因为数据库的事务隔离特性,可能导致加载数据的时候, 对应update_time作为version的的数据加载不全。从而导致consumer方遗漏了部分version的数据,导致consumer和product的数据不一致。
解决方案:延迟发布。
limit offset导致的问题
limit offset加载,order by update_time. 分页加载。
在加载的过程中,因为update_time可能变动,导致未加载的数据产生排序上的变动。 从而导致数据加载的遗漏。
采用ID做分页, 防止数据加载过程中,数据变动导致的数据遗漏。