栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

RabbitMQ报错AmqpConnectException: java.net.ConnectException: Connection refused的解决方法

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RabbitMQ报错AmqpConnectException: java.net.ConnectException: Connection refused的解决方法

问题描述:

之前运维调整了测试服务器用的RabbitMQ的IP地址,并重新配置了RabbitMQ。

然后开发也相应修改了RabbitMQ的IP地址,但是测试时还是出问题了。

 

MQ生产者放不进去数据,也不报错;

 

MQ消费者收不到数据,报错很奇怪:

 

1.本地启动MQ消费者,报错Connection refused。

WARN||Consumer raised exception, processing can restart if the connection factory supports it.Exception summary: org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connection|SimpleMessageListenerContainer.java|1168|

2.测试服务器启动MQ消费者,报错Connection timed out。

Consumer raised exception, processing can restart if the connection factory supports it.Exception summary: org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection timed out|SimpleMessageListenerContainer.java|1168|

还好生产上的代码正常,因为没有调整MQ。

但是测试有问题,还是得想办法解决。

 

解决方法:

1.首先检查代码中配置的MQ基本信息,用户名(username)、密码(password)、MQ的IP地址(addresses)、端口(port)、虚拟主机(virtualHost)

mq消费者就用到了这5个配置,检查完后没有发现问题。

 

2.应该继续检查MQ中的用户权限是否配置正常(读写权限)、本地IP与测试IP是否有权限访问MQ服务器等(telnet倒是能通),但是似乎也没有问题。(自己没有权限、是别人检查的)

 

3.百度,发现答案五花八门,并没有解决了问题。

 

4.自己尝试,发现需要将端口号配置到IP后面,然后配置中去掉"port"才行。

但是之前分开写是没问题的,并且生产上也是分开写的。

总之,测试上得把端口号配置到IP后面,然后MQ生产者消费者就能正常使用MQ了。可能是运维重新配置RabbitMQ时,配置的与之前不一样了吧。

修改前代码(生产上正确,测试上不行;说明某种情况下不能这样写):

init.properties:
host=10.10.123.123
port=5672

context-rabbitMq.xml:

 
 
 
 
 
 

修改后代码(将port写到mq的ip地址后面,然后删掉port):

init.properties:
host=10.10.123.123:5672

context-rabbitMq.xml:

 
 
 

 
 
总结:

当RabbitMQ报错Connection refused或Connection timed out时,确认配置信息与代码与权限无误后,可以试试把端口号写到IP后面,也许就能解决问题了。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/907087.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号