我们的在本地的SpringBoot的项目连接本地虚拟机的RabbitMQ时没有出现连接问题, 但是在连接远程服务器的RabbitMQ时,会出现连接超时,拒绝连接等错误。以下总结了几点错误的原因:
原因一:远程服务器的安全组没有开放端口和授权对象
原因二:服务器的防火墙没有开放相应端口
原因三:yml配置文件出现了错误
以下展示标准的配置文件:
spring
#RabbitMQ
rabbitmq:
#服务器
host: 远程服务器的外网IP
username: RabbitMQ的登录账号
password: RabbitMQ的登录密码
#虚拟主机(一般为/)
virtual-host: /
#端口,默认为5672
port: 5672
listener:
simple:
#消费者最小数量
concurrency: 10
#消费者最大数量
max-concurrency: 10
#限制消费者每次只能处理一条消息,处理完后再处理下一条
prefetch: 1
#启动时是否默认启动容器,默认true
auto-startup: true
#被拒绝时是否重新进入队列
default-requeue-rejected: true
template:
retry:
#发布重试,默认false
enabled: true
#重试时间,默认1000ms
initial-interval: 1000ms
#重试最大次数,默认3次
max-attempts: 3
#重试最大间隔时间,默认10000ms
max-interval: 10000ms
#重试的间隔乘数,比如配2.0,第一次就等10s,第二次等20s,第三次等40s
multiplier: 1
原因四:RabbitMQ没有开放用户访问权限
连接成功
打开远程服务器的RabbitMQ的监控页面,相应地址为: 服务器外网IP(例如192.168.1.1):15672
,登录账号和密码均默认为guest
注意:在服务器的ip访问和防火墙同样必须开放端口,否则无法访问,开放端口方式和上述原因一和二相同
当我们在connections中看到有我们的连接信息时,代表连接成功