前言:本文章来着中华石杉老师视频,老师真滴棒!
如何保证消息的顺序性?
背景:在mysql里增删改一条数据,对应出来了增删改3条binlog,接着这三条binlog发送到MQ里面,到消费出来依次执行,起码得保证人家是按照顺序来的吧?不然本来是:增加、修改、删除;你楞是换了顺序给执行成删除、修改、增加,不全错了么。
RabbitMQ
(1)rabbitmq:一个queue,多个consumer,这不明显乱了?
解决
Kafka
一个topic,一个partition,一个consumer,内部多线程,这不也明显乱了
解决
一个topic,一个partition,一个consumer,内部单线程消费,写N个内存queue,然后N个线程分别消费一个内存queue即可