rabbitmq - 如何使用 Spring Cloud Dataflow 实现 RabbitMQ DLQ
问题描述
我尝试将我的流应用程序(处理器)配置为自动将 dlq 与当前参数绑定:
spring.cloud.stream.rabbit.default.consumer.auto-bind-dlq=true
spring.cloud.stream.rabbit.bindings.input.consumer.declareDlx=true
但是当我通过数据流部署它时,我的应用程序中出现了当前错误:
Shutdown Signal: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'x-dead-letter-exchange' for queue 's2.kotlin-transform.s2' in vhost '/': received none but current is the value 'DLX' of type 'longstr', class-id=50, method-id=10)
或者
Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'x-dead-letter-exchange' for queue 's2.http.s2' in vhost '/': received none but current is the value 'DLX' of type 'longstr', class-id=50, method-id=10)
我见过不同的人有同样的问题,但以另一种方式:received 'DLX' of type 'longstr' but current is none
只是因为他们试图用不同的参数重新创建队列x-dead-letter-exchange
在这里,我无法更改 none,因为它是通过数据流和数据流在 2 秒前创建队列的......
我试图通过以下方式强制使用 DLX 名称:spring.cloud.stream.rabbit.bindings.input.consumer.deadLetterExchange=MYDLX
但得到了同样的错误:
Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'x-dead-letter-exchange' for queue 's2.http.s2' in vhost '/': received none but current is the value 'MYDLX' of type 'longstr', class-id=50, method-id=10)
有人可以帮助我吗?它可能是兔子活页夹中的错误?
解决方案
推荐阅读
- xamarin - 在 Uno 平台上如何使用 Preferences.Set 命令
- java - Saxon 10 HE - 每个 Java 扩展类是否需要一个命名空间?
- ios - SwiftUI 具有 @Environment(\.presentationMode) 用于消除视图行为不端
- redhat - 安全套接字代理代理侦听器错误
- mysql - MYSQL传递存储过程变量IN子句
- docker - 一台服务器上的两个rabbitmq实例与docker组成如何更改默认端口
- sql - Databricks 笔记本 - 从表中返回所有值
- ionic-framework - 图标未在离子中加载
- java - Artifactory:从 6.4.x 升级到 7.3.x 后的缓慢
- asp.net-mvc - Asp.net MVC 中的禁止页面