在进行日志服务 mysql binlog日志进行消费同步时,多个shard的情况下,日志的顺利和记录操作的顺利 不一致,在有对某条记录进行频繁 update 时,同步数据结果不一致 .
测试结果:
现有表t , 两列 id 和 times , 播入 一条记录 ,然后进入 六次修改 ,
有日志服务 store 下有 4 个shard .
日志 服务中 记录 :
shard0 : 0条
shard1 : 1条
_event_ _id_ id times
row_update 91 1 2018-09-29 11:31:07
shard2 : 5条
_event_ _id_ id times
row_insert
73
1
2018-09-28 17:34:48
row_update
75
1
2018-09-28 17:41:53
row_update 76 1 2018-09-28 17:42:02
row_update 77 1 2018-09-28 17:42:05
row_update 78 1 2018-09-28 17:43:13
shard2 : 1条
_event_
_id_
id
times
row_update
92
1
2018-09-28 11:31:18
现对这个store进行消费 , 起一个消费服务 .
它会
create a consumer shard:0
create a consumer shard:1
create a consumer shard:2
create a consumer shard:3
但是各个shard间是异步的,在消费时 不能保证 各shard的消费顺序的记录 操作的 顺利 一致 .所以最终同步的结果不是
1
2018-09-28 11:31:18
而是
1
2018-09-28 17:43:13