RabbitMQ 如何确保消息的成功投递?RabbitMQ 如何保证不重复消费,保证数据不丢失?分布式系统里,如何保证数据的一致性?一串连环炮你是否顶得住?
其实这几个问题的原理大同小异,都可以在统一的思路上解答。
先明白一点,问什么我们的业务需要用到MQ,不管是RabitMQ,kafka,还是RocketMQ?
说白了,MQ异步处理是互联网分层架构中的解耦利器,可以帮助系统处理高并发,削峰填谷。
我们拿 RabitMQ(其它同理) 举例,展示一条消息从生产到消费的过程:
明白了这个过程,我们再一起看问题。
保证消息不被重复消费的关键,是保证消息队列的