解决软件连接RabbitMQ突发System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接异常

一、问题描述

系统再运行时,突然出现

System.Exception: [RabbitMQ.Send Error] RabbitMQ.Client.Exceptions.AlreadyClosedException: Already closed: The AMQP operation was interrupted: AMQP close-reason, initiated by Library, code=541, text="Unexpected Exception", classId=0, methodId=0, cause=System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。

二、问题排除与解决

  1. 排查所有相关系统,发现生产者都再相同时间出现类似报错,其他消费者的系统没有明显异常

  2. 基本锁定问题根源在以下两点:

    a. 网络异常,生产者所在服务器与MQ服务器之间存在偶发性网络异常

    b. MQ服务器异常

  3. 排查MQ Overview,MQ内存、磁盘都是正常,但很快注意到一点,MQ的连接数出奇的高

  4. 排查连接细节,发现大量消费者系统中创建的连接对象

  5. 排查消费者系统,发现代码逻辑问题,创建的消费者连接信息残留未被销毁导致。

相关推荐
虫小宝4 小时前
返利app的消息队列架构:基于RabbitMQ的异步通信与解耦实践
分布式·架构·rabbitmq
We....5 小时前
Java分布式编程:RMI机制
java·开发语言·分布式
在未来等你5 小时前
Elasticsearch面试精讲 Day 18:内存管理与JVM调优
大数据·分布式·elasticsearch·搜索引擎·面试
We....5 小时前
Java 分布式缓存实现:结合 RMI 与本地文件缓存
java·分布式·缓存
Chasing__Dreams5 小时前
kafka--基础知识点--5.3--producer事务
分布式·kafka
小枫编程5 小时前
Spring Boot 调度任务在分布式环境下的坑:任务重复执行与一致性保证
spring boot·分布式·后端
Hello.Reader7 小时前
Kafka 实现从网络层到日志与位点的“全景拆解”
分布式·kafka
无缘之缘7 小时前
SpringBoot整合RabbitMQ
spring boot·rabbitmq·java-rabbitmq
我是苏苏8 小时前
KafKa02:Kafka配置文件server.properties介绍
分布式·kafka
Dobby_058 小时前
【Hadoop】Yarn:Hadoop 生态的资源操作系统
大数据·hadoop·分布式·yarn