使用 Spring Cloud Stream RabbitMQ 手动确认

use*_*591 4 rabbitmq spring-cloud-stream

我正在尝试设置一个场景,其中侦听器将手动将 ACK 发送到 RabbitMQ。我的 application.properties 中有这个

spring.cloud.stream.rabbit.bindings.input.consumer.acknowledge-mode=MANUAL
Run Code Online (Sandbox Code Playgroud)

如何从侦听器发送 ack?我从手动确认消息:Spring Cloud Stream Kafka中看到,对于 Kafka,我们创建一个 Acknowledgment 对象并在其中调用acknowledgment()。RabbitMQ 是否有执行相同操作的示例?

Gar*_*ell 5

请参阅Spring 集成参考手册。该消息有两个标头,AmqpHeaders.CHANNEL并且AmqpHeaders.DELIVERY_TAG

您需要调用basicAck该通道,并传入递送标签。