RabbitMQ 如何保证消息可靠?
RabbitMQ 面试题发布于
一、生产端
- 开启 Publisher Confirm,确保消息到达 Exchange。
- 开启 Return 机制,消息不可路由时通知生产者。
- 本地消息表 + 定时补偿。
二、Broker 端
- 交换机、队列、消息都持久化(durable=true, deliveryMode=2)。
- 镜像队列:队列复制到多个节点,主节点宕机从节点接管。
三、消费端
- 手动 ACK,处理完再确认。
- 失败消息进死信队列。
- 消费幂等:消息可能重复,业务需去重。
四、顺序消息
RabbitMQ 单个队列内消息有序,但多消费者消费时顺序被打乱。保证顺序需单队列单消费者,或按业务 key 路由到同一队列。