MQ按照顺序消费
场景:
生产者对一个数据增改删,对应出来了三条binlog,把三条binlog发送到mq,消费者去消费,那么肯定需要按照增改删顺序去执行,那么消费者没有按照顺序去执行怎么解决.
1.RabbitMQ按照顺序消费
- 把同一组消息发送到一个queue,一个消费者对应一个queue去消费.
2.Kafka按照顺序消费
- 写入一个partition,这个partition中的数据一定是有序的.生产者写入同一组消息的时候指定一个key,这组数据就会发送到一个partition中,而这个partition中的数据一定是有序的.
- 当Kafka操作大量数据时,肯定会用到多线程,此时又该如何保证顺序消费呢.在thread线程消费数据前创建多个内存队列,一组数据存入到一个队列,一个thread线程消费去一个内存队列中的数据即可.