java - 如何使用 Spring Cloud Stream 在 RabbitMQ 的队列中添加功能“x-delayed-type:direct”?
问题描述
这是我的应用程序属性的一部分:
spring.cloud.stream.rabbit.bindings.studentInput.consumer.exchange-type=直接 spring.cloud.stream.rabbit.bindings.studentInput.consumer.delayed-exchange=true
但似乎在 RabbitMQ 管理页面中,它没有x-delayed-type: direct in the Args in 我的队列功能。我正在参考这个 Spring Cloud Stream 文档:https ://docs.spring.io/spring-cloud-stream/docs/Elmhurst.RELEASE/reference/htmlsingle/
我究竟做错了什么?先谢谢了
解决方案
我刚刚对其进行了测试,并且效果很好。
你启用插件了吗?如果没有,你应该在日志中看到这个......
2018-07-09 08:52:04.173 错误 156 --- [127.0.0.1:5672] osarcCachingConnectionFactory:通道关闭:连接错误;协议方法:#method(reply-code=503,reply-text=COMMAND_INVALID - 未知交换类型'x-delayed-message',class-id=40,method-id=10)
另一种可能性是交易所已经存在。交换配置是不可变的;你会看到这样的消息...
2018-07-09 09:04:43.202 错误 3309 --- [127.0.0.1:5672] osarcCachingConnectionFactory:通道关闭:通道错误;协议方法:#method(reply-code=406,reply-text=PRECONDITION_FAILED - 不等价的 arg 'type' 用于在 vhost '/' 中交换'so51244078':收到 ''x-delayed-message'' 但当前是 'direct' , 类 ID=40, 方法 ID=10)
在这种情况下,您必须先删除交易所。
顺便说一句,您还需要一个路由密钥;默认情况下,队列将与主题交换通配符绑定#
。
推荐阅读
- branch.io - 未应用分行推荐积分
- sql - 对特定日期之前的值求和
- javascript - 使用 Jquery 处理 JSON 数据
- mapbox - Mapbox 获取当前位置
- matlab - 在 MATLAB 中针对数组的奇数列绘制偶数列
- c++ - 'return' : 无法从 'const class myClass' 转换为 'class myClass &'
- css - 调整内容大小时,CSS容器不会同时增长
- php - 带有 php html 的公司简介数据库
- google-cloud-platform - 在 gsutil 中为 GCP 操作指定 Google 服务帐户
- c# - 更改线程区域性 .NET Framework 4.6 及更高版本