我们的在本地的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中听到有我们的联接信息时,代表联接成功