在网络上跟着CSDN教程一步步安装上RabiitMQ后,在浏览器上已经可以访问到web界面,但在项目中运行RabiitMQ时,一直显示连接失败。
在查看了端口映射是否正确,是否开放端口,配置文件是否正确后,仍出现问题,后来发现在我的Web界面首页和别人的不太一样。出现Overview: Management only mode字段,且在第三个界面显示 Stats in management UI are disabled on this node
原因:在 RabbitMQ 中,有一个插件叫做 RabbitMQ Management 插件,它提供了一个基于 Web 的用户界面,用于监视和管理 RabbitMQ 服务器。当 RabbitMQ 实例处于 "Management only mode" 时,意味着 Web 界面仅用于管理目的,而不允许其他用途,比如发布或订阅消息等。
解决方式:
#进入rabbitmq容器
docker exec -it {rabbitmq容器名称或者id} /bin/bash
#进入容器后,cd到以下路径
cd /etc/rabbitmq/conf.d/
#修改 management_agent.disable_metrics_collector = false
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
#退出容器
exit
#重启rabbitmq容器
docker retart {rabbitmq容器id}
PS:当RabbitMQ运行在远程,而项目在本地时,使用guest用户也可能造成连接失败的情况,在RabiitMQ在3.3.0开始禁止guest用户使用除localhost之外的连接方式。