当前位置:   article > 正文

rabbitMQ如何保证消息顺序消费和避免消息重复消费_rabbitmq怎么保证消息顺序和重复消费

rabbitmq怎么保证消息顺序和重复消费

前言

莫得前言,直接进入正题


一、如何保证消息的顺序消费

思路就是拆分queue,使得一个queue只对应一个消费者,这样消费者一定是按照顺序消费的;

如果消息数量较大,那我们可以按照消息类型拆分队列,你管你消息再多,不可能所有消息都是需要顺序性消费的吧,我们可以灵活一点,视情况而定,比如某三个消息ABC的对应的操作是需要顺序消费的,那就把这三个放到同一个队列;如果有多组这样的ABC消息需要保证顺序,那我们就多搞几个队列就哦了;不需要保证顺序的消息就放在其它队列;

二、如何避免消息的重复消费

这个要分情况

如果是direct模式:
一个队列对应一个消费者,那不存在重复消费的问题;如果是一个队列对应多个消费者,那消费者会通过轮询来消费,也不会存在重复消费的问题;

如果是topic或者广播模式:
一个队列对应了多个消费者,且消费者会同时收到消息,那就会出现重复消费的问题,如果我们不希望出现重复消费,我们可以给消息加一个唯一id,存到redis里面,消息消费成功后就存到redis里面去,这里我们可以用redis的set类型,然后每次消费之前先看看redis里面有没有该id;

ok我话讲完

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

闽ICP备14008679号