SOLVED canal如何保证数据的顺序性,相同主键上的插入更新和删除会保证顺序吗?
-
canal如何保证数据的顺序性,数据会乱序吗?
-
以你使用canal订阅增量同步到rdb为例,整个路径会经过binlog->mq->rdb,如果路径上每个地方都能保证顺序,则整体上消息的订阅和写入肯定也是顺序的。
- binlog本身是按照写入顺序记录的
- binlog->canal: canal订阅binlog也是按照mysql slave dump协议订阅的,也是有序的
- canal->mq: canal投递给mq按照写入mq的方式不同,是在不同的维度保证有序。可以参考官方文档:https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart
- mq->rdb: 消费mq的消息再写入rdb时,消费的是每个分区的数据。同一个分区内的数据是按序消费的。所以mq写入rdb的顺序也和你一开始设置的mq的分区写入策略有关
-
以你使用canal订阅增量同步到rdb为例,整个路径会经过binlog->mq->rdb,如果路径上每个地方都能保证顺序,则整体上消息的订阅和写入肯定也是顺序的。
- binlog本身是按照写入顺序记录的
- binlog->canal: canal订阅binlog也是按照mysql slave dump协议订阅的,也是有序的
- canal->mq: canal投递给mq按照写入mq的方式不同,是在不同的维度保证有序。可以参考官方文档:https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart
- mq->rdb: 消费mq的消息再写入rdb时,消费的是每个分区的数据。同一个分区内的数据是按序消费的。所以mq写入rdb的顺序也和你一开始设置的mq的分区写入策略有关
Copyright © 2020 ClouGence, Inc.备案号:浙ICP备20007605号-2