RabbitMQ不讲武德,发个消息也这么多花招 (9)

然而假如生产者迟迟没有收到消费者是否消费成功的信息,那么可能就需要补偿,比如微信支付等都会有补偿机制,间隔一定时间就将消息重发一次。

补偿机制同时也会带来一个问题,假如说消费者消费成功了,但是在告诉生产者的时候失败了,那么这时候消息如果再次补偿就会造成重复消费,所以消费者需要支持幂等(即无论一条消息被消费多少次,都不会改变结果)。当然,同时还有其他场景需要考虑,比如消息之间的依赖性等等问题都需要结合具体业务场景来具体处理。

总结

本文主要讲述了 RabbitMQ 的消息发送方式,介绍了 3 种不同交换机的方式,同时最后也从发送消息的主要 4 个步骤分析了每一个步骤如何保证消息的可靠性,并分别通过 Java API 和 Spring Boot 提供了示例,中间还提到了死信队列,死信队列本质也是一个队列,只不过存储的消息比较特殊,相信通过本文,大家对 RabbitMQ 会有一个更深层次的了解。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsxyy.html