解决软件连接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. 排查消费者系统,发现代码逻辑问题,创建的消费者连接信息残留未被销毁导致。

相关推荐
码农小灰2 小时前
Kafka消息持久化机制全解析:存储原理与实战场景
java·分布式·kafka
纪莫9 小时前
Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发生重平衡(reblanace)
java·分布式·后端·中间件·kafka·队列
想躺平的咸鱼干9 小时前
RabbitMQ 基础
java·分布式·rabbitmq·idea·amqp·消息转换器·交换机模型
Monly219 小时前
RabbitMQ:延时消息(死信交换机、延迟消息插件)
java·rabbitmq·java-rabbitmq
KaiwuDB11 小时前
KWDB 分布式架构探究——数据分布与特性
数据库·分布式
华仔啊12 小时前
乐观锁、悲观锁和分布式锁,你用对了吗?
java·分布式
艾希逐月1 天前
分布式唯一 ID 生成方案
分布式
Monly211 天前
RabbitMQ:生产者可靠性(生产者重连、生产者确认)
spring boot·rabbitmq·java-rabbitmq
齐木卡卡西在敲代码1 天前
kafka的pull的依据
分布式·kafka
lllsure1 天前
RabbitMQ 基础
分布式·rabbitmq