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

相关推荐
菜鸟康5 小时前
C++实现分布式网络通信框架RPC(3)--rpc调用端
分布式·网络协议·rpc
代码丰7 小时前
使用Spring Cloud Stream 模拟生产者消费者group destination的介绍(整合rabbitMQ)
java·分布式·后端·rabbitmq
.生产的驴10 小时前
SpringBoot 服务器监控 监控系统开销 获取服务器系统的信息用户信息 运行信息 保持稳定
服务器·spring boot·分布式·后端·spring·spring cloud·信息可视化
熊猫钓鱼>_>11 小时前
Python内存互斥与共享深度探索:从GIL到分布式内存的实战之旅
分布式
掘金-我是哪吒13 小时前
分布式微服务系统架构第147集:JavaPlus技术文档平台日更
分布式·微服务·云原生·架构·系统架构
白总Server14 小时前
Golang实现分布式Masscan任务调度系统
java·运维·服务器·开发语言·分布式·后端·golang
袋鼠云数栈14 小时前
从SQL Server到分布式大数据平台:重构企业数据架构
大数据·分布式·sql·重构·数据库架构
麦兜*16 小时前
【为什么RabbitMQ能够控制事务?控制事务的原理】
java·rabbitmq·java-rabbitmq
蜗牛编程之路16 小时前
RabbitMQ的使用--项目创建、五种工作模式、高级特性
数据库·分布式·rabbitmq
-代号952717 小时前
@SchedulerLock处理Spring Task在分布式环境下的重复执行问题
java·分布式·spring