当前位置:   article > 正文

如何保证mq的有序性_分布式消息队列:如何保证消息的顺序性

如何保证mq的顺序性

数据的顺序性

(1)rabbitmq保证数据的顺序性如果存在多个消费者,那么就让每个消费者对应一个queue,然后把要发送 的数据全都放到一个queue,这样就能保证所有的数据只到达一个消费者从而保证每个数据到达数据库都是顺序的。

rabbitmq:拆分多个queue,每个queue一个consumer,就是多一些queue而已,确实是麻烦点;或者就一个queue但是对应一个consumer,然后这个consumer内部用内存队列做排队,然后分发给底层不同的worker来处理

fb63d0fa63d9b17166a34e375d4180d9.png

39b448a0f0e598f25e0e567f3eeffb75.png

(2)kafka保证数据的顺序性

kafka 写入partion时指定一个key,列如订单id,那么消费者从partion中取出数据的时候肯定是有序的,当开启多个线程的时候可能导致数据不一致,这时候就需要内存队列,将相同的hash过的数据放在一个内存队列里,这样就能保证一条线程对应一个内存队列的数据写入数据库的时候顺序性的,从而可以开启多条线程对应多个内存队列

kafka:一个topic,一个partition,一个consumerÿ

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/696509
推荐阅读
相关标签
  

闽ICP备14008679号