RabbitMQ消息确认机制-可靠抵达
          为了确保消息的可靠传递,可以采用事务消息,但其性能会大幅下降。为此,引入了确认机制以提高效率。确认机制包括生产者端的ConfirmCallback和ReturnCallback以及消费者端的ack机制。
- **ConfirmCallback**:通过设置`spring.rabbitmq.publisher-confirms=true`或`spring.rabbitmq.publisher-confirm-type=correlated`开启,并在RabbitTemplate中设置确认回调,当消息被成功接收时触发。
- **ReturnCallback**:通过配置`spring.rabbitmq.publisher-returns=true`及`spring.rabbitmq.template.mandatory=true`启用,在消息未能正确路由到队列时触发回调。
- **消费者确认**:默认情况下,消费者自动确认消息;若需手动控制,则应将`spring.jms.listener.acknowledge-mode`设为`manual`,并在监听器中实现具体的消息签收(`basicAck`)或拒收逻辑(`basicNack`/`basicReject`)。这样即使处理过程中出现问题,也能保证消息不会丢失。