随笔 - 36  文章 - 0  评论 - 0  阅读 - 3503

如何保证MQ消息的顺序性?

1)RabbitMQ:拆分成多个queue,每个queue对应一个customer;或者就一个queue对应一个customer,但是这个customer内部用内存队列,然后分发给底层不同的worker来处理

 

 

2)Kafka:

生产者写入一个partition中的数据一定是有顺序性的;

生产者在写数据的时候,可以指定一个key,比如说订单系统指定订单id为key,

这个订单相关的数据,一定都会被分发到一个partition中,

而且这个partition中的数据一定是有顺序

 

消费者从partition中取出数据的时候一定是按照顺序的

但是消费者内部并发线程执行从partition中取出的数据导致顺序混乱

解决办法:一个topic,一个partition,一个consumer,内部单线程消费,写N个内存queue,然后N个线程分别消费一个内存queue即可

 

posted on   网恋被骗两千八  阅读(632)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示