2.RabbitMQ 的可靠性消息的发送
本篇包含 1、 RabbitMQ 的可靠性消息的发送 2、 RabbitMQ 集群的原理与高可用架构的搭建 3、 RabbitMQ 的实践经验 上篇包含 1、MQ 的本质,MQ 的作用 2、RabbitMQ 的特性,工作模型,交换机详解 3、Java API 编程,UI 管理界面 4、进阶知识:TTL、死信队列、延迟队列,服务端流控和消费端限流 5、Spring AMQP 核心组件 1. RabbitMQ 可靠性投递与高可用架构 1.1. 可靠性投递 在代码里面一定是先操作数据库再发送消息。避免因为数据库回滚导 致的数据不一致。 但是如果先操作数据,后发送消息,发送消息出了问题,那不是一样 会出现业务数据的不一致? 分析 RabbitMQ 的可靠性投递,也就是在使用 RabbitMQ 实现异步通 信的时候, 消息丢了怎么办,消息重复消费怎么办? 在 RabbitMQ 里面提供了很多保证消息可靠投递的机制,这个也是 RabbitMQ 的一 个特性。 我们在讲可靠性投递的时候,必须要明确一个问题,因为效率与可靠性是无法兼得 的,如果要保证每一个环节都成功,势必会对消息的收发效率造成影响。所以如果是一 些业务实时一致性要求不是特别高的场合,可以牺牲一些可靠性来换取效率。 比如发送通知或者记录日志的这种场景,如果用户没有收到通知,不会造成业务影 响,只要再次发送就可以了。