> RabbitMQ防丢方案:生产者开启Confirm,Broker配置持久化与集群,消费者手动ACK。 RabbitMQ 要保证消息不丢失,必须在全链路(生产者、Broker、消费者)上进行配合。如果其中任何一个环节出了问题,都可能导致消息丢失。 以下是基于这三个层面的详细解决方案: --- 一、 生产者层面 (Producer) 目标:确保消息成功发送到了 RabbitMQ Broker,并且被正确路由到了队列。 1. 开启发布确认机制 (Publisher Confirms) 这是防止消息在发送途中丢失的核心机制。 原理:生产者将信道设置成 模式,一旦信道进入该模式,所有在该信道上面发布的消息都会被指派一个唯一的 ID。一旦消息被投递到所有匹配的队列之后,Broker 就会发送一个确认(Basic.Ack)给生产者(包含消息的唯一 ID)。 实现方式: 同步等待:发送一条等待确认一条(性能差)。 批量确认:发送一批等待确认(由隐患,出错难以定位)。 异步确认(推荐):提供一个回调方法,Broker 确认收到后回调该方法。如果 Broker 发生内部错误导致消息丢失,会发送 ...