irpas技术客

(记录)整合spring cloud bus+rabbitmq后,config server/client启动报错及解决方式_零环

irpas 3718

目录 1. 问题背景2. 查找资料3. 最终解决感谢阅读

1. 问题背景

今天根据网络上的教程尝试自己搭了一下spring cloud bus + rabbitmq, 以实现spring cloud config 配置的动态刷新(详细配置过程就略去了,网上有很多教程),配置完成后却报了如下错误:

com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue ‘springCloudBus.anonymous.8ceHsCHoRM2i5_BygxYe0Q’ in vhost ‘/’, class-id=50, method-id=10)

错误字面意思是默认vhost ‘/’ 中找不到队列, 访问rabbitmq的web管理页面,确实没有相应的队列,但连接却已存在(程序本身启动成功)

本人作为新手第一次接触rabbitmq, 于是只能开启了面向百度编程之旅。。。

2. 查找资料

对于这个问题,我在网上搜索到的唯一解决方案是这样的, 一句话解决方案 (未必是原始出处) 里面只有这样一句话:

项目启动报此异常,解决方式:用root权限登陆rabbitmq,admin处添加vhost

没错,就是这么精简。。。不过好在添加vhost的教程还是很多的,我个人参考的教程是这篇:RabbitMQ管理界面使用——用户权限vhost等设置

3. 最终解决

首先根据上方的参考资料添加一个新的vhost, 效果如图(/demo是我自己起的名字)

注意连接的用户要有新增vhost的访问权限哦~

到这里还没有结束,在应用的配置文件里也要加上virtual-host名才行(我被这一步卡了很久)

rabbitmq: host: XXX port: 5672(注意不要写成15672) username: XXX password: XXX virtual-host: /demo (自己的vhost名)

如果配置文件的格式是.propterties而不是.yml的话,就这样写

spring.rabbitmq.host=XXX spring.rabbitmq.port=5672 spring.rabbitmq.username=XXX spring.rabbitmq.password=XXX spring.rabbitmq.virtual-host=/demo

接下来再启动项目就大功告成了,也能够在web管理页面中查到相应的队列:


感谢阅读

这是我第一次写博客,如有不足之处希望大家多多包含,如果能提出建议就更好了,也希望这篇文章能够帮助到一些碰到同样问题的人,如果有人知道为什么默认的vhost里没法创建springCloudBus匿名队列,也希望能解答一下我的疑惑,感谢阅读~


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #记录整合spring #Cloud #busrabbitmq后 #config #1