如何解决QueuesNotAvailableException:无法为侦听器准备队列要么队列不存在,要么代理不允许我们使用它
将Rabbit MQ 版本从3.7 更新到3.8 后,我们开始出现以下异常
我们正在启动微服务
{"timestamp":"2021-01-07T12:41:05.738+00:00","class":"org.springframework.amqp.rabbit.connection.CachingConnectionFactory","thread-id":"main","level":"INFO","type":"createBareConnection","logMessage":"Created new connection: rabbitConnectionFactory#5b5e7036:1/SimpleConnection@1e734eee [delegate=amqp://test@172.40.1.237:5672/,localPort= 40702]"}
{"timestamp":"2021-01-07T12:41:05.740+00:00","class":"com.rabbitmq.client.impl.ForgivingExceptionHandler","thread-id":"AMQP Connection 172.40.1.237:5672","level":"WARN","type":"log","logMessage":"An unexpected connection driver error occured (Exception message: Connection reset)"}
{"timestamp":"2021-01-07T12:41:06.747+00:00","level":"ERROR","logMessage":"Channel shutdown: connection error; protocol method: #method<connection.close>(reply-code=503,reply-text=COMMAND_INVALID - unkNown exchange type 'x-delayed-message',class-id=40,method-id=10)"}
我们使用的是弹簧靴
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
我们使用 RabbitListener
来绑定和创建队列
@RabbitListener(bindings = @QueueBinding(
value = @Queue(value = "state.Transaction",durable = "true",autoDelete = "false"),exchange = @Exchange(value = "state.exchange",durable = "true"),key = "state.Transaction"))
rabbitmq:
host: "rabbitmq-1-xyx.internal.xzy.zzz"
password: test
username: test
并且这个测试用户拥有所有的超级权限 rabbitmqctl set_permissions -p / test "." "." ".*"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。