Spring Cloud集成RabbitMQ报错:AmqpConnectException连接被拒绝
嘿,我之前跟着类似的Spring Cloud教程踩过一模一样的坑,咱们一步步来排查解决:
先确认RabbitMQ是否正常运行
这是最常见的诱因!Windows下可以按Win+R输入services.msc打开服务管理器,找到RabbitMQ服务,看看它的状态是不是「正在运行」。如果没启动,右键点击「启动」;要是还没安装RabbitMQ,得先装它的依赖Erlang,再安装RabbitMQ,安装完成后记得启动服务,也可以用命令行执行rabbitmq-server start手动启动。检查Spring服务的RabbitMQ配置参数
打开你的reservation-client服务的配置文件(application.yml或者application.properties),核对RabbitMQ的连接信息是否正确:
要是没修改过RabbitMQ的默认设置,配置应该是这样的:spring: rabbitmq: host: localhost port: 5672 username: guest password: guest要是你改了RabbitMQ的默认用户名、密码或者端口,一定要确保配置文件里的参数和实际RabbitMQ的设置完全匹配。
排查防火墙或杀毒软件的拦截
Windows自带的Defender防火墙或者第三方杀毒软件,很可能会拦截RabbitMQ的5672端口连接。可以先临时关闭防火墙,再发送请求试试。如果能正常连接了,记得给RabbitMQ添加防火墙规则,允许5672端口的入站和出站流量。确认服务启动顺序
一定要保证RabbitMQ是最先启动的,然后再启动你的eureka-service、config-service和reservation-client。如果先启动了Spring服务,RabbitMQ后启动,服务初始化时会直接连接失败,有些场景下不会自动重试,这时候重启一下三个Spring服务就好。通过RabbitMQ管理控制台排查细节
启动RabbitMQ后,访问http://localhost:15672(默认管理端口),用guest/guest登录,检查虚拟主机是否存在、用户权限是否正常,有没有其他异常状态。
内容的提问来源于stack exchange,提问作者Anoop Hallimala

