【发布时间】:2021-12-31 14:31:20
【问题描述】:
我正在使用 Spring Cloud Stream 版本3.0.6.RELEASE。
我有一个名为my.queue.exchange 的现有交易所。我的应用程序包含一个消费者,我想创建一个名为MY_QUEUE 的队列并将该队列绑定到my.queue.exchange 交换。此外,我想将失败的消息重新发布到名为 MY_QUEUE_DLQ 的 DLQ。
我的问题是名为MY_QUEUE_DLQ 的死信队列绑定到my.queue.exchange.dlx 交换,使用两个路由键而不是一个,第一个使用路由键my.queue.rkey.dlx,第二个使用路由键MY_QUEUE
我的消费者 bean:
@Bean
public Consumer<Dto> consumeFunction() {
return dto -> {
// do stuff
};
}
我的application.yml:
spring:
cloud:
stream:
function:
definition: consumeFunction
rabbit:
bindings:
consumeFunction-in-0:
consumer:
autoBindDlq: true
deadLetterQueueName: MY_QUEUE_DLQ
deadLetterExchange: my.queue.exchange.dlx
deadLetterRoutingKey: my.queue.rkey.dlx
deadLetterExchangeType: topic
declareExchange: false
bindQueue: true
queueNameGroupOnly: true
bindingRoutingKey: 'my.queue.rkey'
bindings:
consumeFunction-in-0:
destination: my.queue.exchange
group: MY_QUEUE
【问题讨论】:
标签: java spring rabbitmq spring-cloud-stream