目录 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