Canal 监听 binlog 日志推往 MQ,消费端多实例如何做到有序消费?

场景:MySQL 表字段多、查询慢,业务有模糊查询的要求。现计划将数据备份到 ES 中,查询请求通过 ES 处理。
数据备份的方案是 Canal 订阅 binlog 数据操作,消费端再加以信息消费后存储于 ES。
这种情况下,未防止对一条数据的两次修改乱序消费,消费端多实例如何做到有序消费?

Canal 监听 binlog 日志推往 MQ。需要严格保证顺序消费的话。这个要看MQ实现支持不支持了吧。我没做过这个,只是猜测。

你用的什么MQ?

这个我很有经验。搞过两个系统,一个是一天一千万的支付订单数据,分表1024,然后cancel监听写入kafka写入es。还有个风控的订单分表128,直接双写,业务以mysql为主风控流水号分表,异步线程池写es。订单量目前三个月已经9kw了,无压力。

1 个赞

1024 128 分别是啥意思

我用的比较多的是kafka,写同一个分区就能保证有序