1
我嘗試了幾種方法來管理RabbitMQ的手動確認,特別是基於this previous post,但不幸的是,它們都不起作用。如何使用Spring Cloud Stream Rabbit管理手動確認?
在我的配置文件,我已經設置了確認模式到手動如下:
spring:
cloud:
stream:
bindings:
magento-consumer:
binder: rabbit
destination: toto
durableSubscription: false
consumer:
acknowledge-mode: MANUAL
然後,我有一個receive
方法,該方法是通過@StreamListener
,它需要4個參數註釋:
@StreamListener(SinkInterface.NAME)
public void receive(
Message<Event> m,
@Header(name = Queue.TO_MAGENTO , required = false) Boolean header,
@Header(AmqpHeaders.CHANNEL) Channel channel,
@Header(AmqpHeaders.DELIVERY_TAG) Long deliveryTag
) {
//Do something
}
問題是channel
參數始終爲空,所以我無法檢索amqp_channel
標頭。
org.springframework.messaging.MessageHandlingException:缺少標題 'amqp_channel' 的方法參數類型[接口com.rabbitmq.client.Channel]
如何可以檢索該信道參數? 我不明白爲什麼amqp_channel
沒有設置,以及如何注入它。
我錯過了什麼嗎?
我的不好,我沒注意'兔'字段...... –