【发布时间】:2019-08-05 08:59:33
【问题描述】:
我想为现有队列配置死信。为此,我尝试将参数(x-dead-letter-queue)添加到我的 Durable rabbitmq 队列中。所以当我更新我的 bean 定义时
来自
@Bean
Queue queue() {
return QueueBuilder.durable("my-queue")
.build();
到
@Bean
Queue queue() {
return QueueBuilder.durable("my-queue")
.withArgument("x-dead-letter-exchange", "dead-letter.exchange")
.build();
}
我遇到了异常
Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'x-dead-letter-exchange' for queue 'my-queue' in vhost '/': received 'dead-letter.exchange' but current is None, class-id=50, method-id=10)
我读到我可以应用策略来更新持久队列。所以,我尝试了以下命令
rabbitmqctl set_policy dlq_policy_name "my-queue" '{"dead-letter-exchange": "dead-letter.exchange"}'
但仍然没有在队列 my-queue 上设置参数。
你能帮我实现吗?
PS。我宁愿避免删除和重新创建队列,但如果这是最后一个选项,那么只有我会考虑。
【问题讨论】:
标签: java spring spring-boot rabbitmq amqp