本文作者:DurkBlue

SpringCloud 连接RabbitMQ 显示Socket Closed Attempting to connect to: [localhost:15672] 连接被拒推荐

DurkBlue 01-26 16030
SpringCloud 连接RabbitMQ 显示Socket Closed  Attempting to connect to: [localhost:15672] 连接被拒摘要:         先看消费端关于RabbitMQ配置文件    ...

        先看消费端关于RabbitMQ配置文件

        

rabbitmq: # RabbitMQ 相关配置
 
host: localhost
 port: 15672
 
username: guest
 password: guest
 virtual-host: / # 虚拟主机默认/


再看服务单关于RabbitMQ配置

rabbitmq: # RabbitMQ 相关配置
 
host: localhost
 port: 15672
 
username: guest
 password: guest
 virtual-host: / # 虚拟主机默认/


启动报错:


java.net.SocketException: Socket Closed

at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_202]

at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_202]

at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[na:1.8.0_202]

at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_202]

at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[na:1.8.0_202]

at java.io.BufferedInputStream.read(BufferedInputStream.java:265) ~[na:1.8.0_202]

at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288) ~[na:1.8.0_202]

at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-5.4.3.jar:5.4.3]

at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164) ~[amqp-client-5.4.3.jar:5.4.3]

at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:596) ~[amqp-client-5.4.3.jar:5.4.3]

at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]


2024-01-26 12:29:29.768  WARN 25616 --- [2GYlSxOVN59jw-6] o.s.a.r.l.SimpleMessageListenerContainer : Consumer raised exception, processing can restart if the connection factory supports it. Exception summary: org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect

2024-01-26 12:29:29.768  INFO 25616 --- [2GYlSxOVN59jw-6] o.s.a.r.l.SimpleMessageListenerContainer : Restarting Consumer@703d9c0c: tags=[[]], channel=null, acknowledgeMode=AUTO local queue size=0

2024-01-26 12:29:29.769  INFO 25616 --- [2GYlSxOVN59jw-7] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [localhost:15672]

2024-01-26 12:29:34.775 ERROR 25616 --- [127.0.0.1:15672] c.r.c.impl.ForgivingExceptionHandler     : An unexpected connection driver error occured


SpringCloud 连接RabbitMQ 显示Socket Closed  Attempting to connect to: [localhost:15672] 连接被拒 第1张


解决: 修改生产段和消费端配置文件中的连接地址端口:原来是15672,改成5672;15672默认是RabbitMQ的web端管理平台的端口;5672是MQ访问的端口。


SpringCloud 连接RabbitMQ 显示Socket Closed  Attempting to connect to: [localhost:15672] 连接被拒 第2张


没有报错了。成功解决


补充 :

在rabbitmq中有几个端口映射关系 :

4369 (epmd), 25672 (Erlang distribution): Epmd 是 Erlang Port Mapper Daemon 的缩写,在 Erlang 集群中相当于 dns 的作用,绑定在4369端口上。


5672, 5671 (AMQP 0-9-1 without and with TLS): AMQP 是 Advanced Message Queuing Protocol 的缩写,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,专为面向消息的中间件设计。

基于此协议的客户端与消息中间件之间可以传递消息,并不受客户端/中间件不同产品、不同的开发语言等条件的限制。Erlang 中的实现有 RabbitMQ 等。


15672 (if management plugin is enabled): 通过 http://serverip:15672 访问 RabbitMQ 的 Web 管理界面,默认用户名密码都是 guest。(注意:RabbitMQ 3.0之前的版本默认端口是55672,下同)


61613, 61614 (if STOMP is enabled): Stomp 是一个简单的消息文本协议,它的设计核心理念就是简单与可用性,官方文档,实践一下 Stomp 协议需要:

一个支持 stomp 消息协议的 messaging server (譬如activemq,rabbitmq);

一个终端(譬如linux shell);

一些基本命令与操作(譬如nc,telnet)

1883, 8883 (if MQTT is enabled): MQTT 只是 IBM 推出的一个消息协议,基于 TCP/IP 的。两个 App 端发送和接收消息需要中间人,这个中间人就是消息服务器(比如ActiveMQ/RabbitMQ),三者通信协议就是 MQTT





这篇文章由DurkBlue发布,转载请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 01-26
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享