如何保证RabbitMQ的消息的顺序性

如何保证RabbitMQ的消息的顺序性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

隆林ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

对于这个问题,我查阅很多网上的资料,大体来说主流的解决方案有两种:

  • 一种是使用单线程消费来保证消息的顺序性

  • 对消息进行编号,消费者处理时根据编号来判断顺序

乍一看,觉得两种方案没有什么问题,但是深入了解下,觉得这两种解决方案并不能完全接保证消息的消费的顺序性问题。

首先我们来分析下,是什么导致RabbitMQ消息的顺序性问题的,常见的有以下几种情形:

  • 消息生产者启用了发送确认机制,在发生超时、中断等,需要RabbitMQ补偿发送时,那么此时消息在源头就已经出现顺序混乱了,导致消息被消费时也是乱序的

  • 另一种情况,如果消息发送时,设置了超时时间,并且采用了死信队列,模拟了延时队列的效果,那么此时消息的顺序也时不能保证的

  • 还有一种情况,如果消息设置了优先级,那么在高并发的情况下,消息的顺序也是得不到保证的,消息的消费顺序也就不能保证了

刚才我们分析了出现消息乱序的几种情况,这里我们首先排除了实用单线程来消费,原因很简单,发送的消息的顺序(源头数据的顺序出现了异常)出现了异常,单线程消费的顺序肯定也是异常的

其次对消息进行编号,这个可以解决消息顺序的问题,但是对加大了对业务处理的复杂性

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


文章名称:如何保证RabbitMQ的消息的顺序性
标题路径:http://bzwzjz.com/article/pdoico.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 做网站设计 宜宾网站设计 自适应网站建设 成都网站建设推广 高端网站设计 成都网站建设 定制网站设计 专业网站建设 定制网站设计 网站建设公司 成都网站建设 成都网站建设公司 手机网站制作 成都响应式网站建设 移动网站建设 成都定制网站建设 成都网站设计 成都企业网站制作 成都网站建设流程 成都网站建设公司 网站设计 响应式网站设计