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

相关推荐
深蓝电商API28 分钟前
Scrapy+Rredis实现分布式爬虫入门与优化
分布式·爬虫·scrapy
回家路上绕了弯2 小时前
定期归档历史数据实战指南:从方案设计到落地优化
分布式·后端
爱琴孩2 小时前
RabbitMQ 消息消费模式深度解析
rabbitmq·消息重复消费
rchmin3 小时前
Distro与Raft协议对比分析
分布式·cap
小辉笔记3 小时前
kafka原理总结
分布式·kafka
实战项目3 小时前
分布式协作入侵检测系统的报警信息管理
分布式
利刃大大4 小时前
【RabbitMQ】Simple模式 && 工作队列 && 发布/订阅模式 && 路由模式 && 通配符模式 && RPC模式 && 发布确认机制
rpc·消息队列·rabbitmq·队列
无心水6 小时前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf
小北方城市网17 小时前
分布式锁实战指南:从选型到落地,避开 90% 的坑
java·数据库·redis·分布式·python·缓存
范桂飓19 小时前
大模型分布式训练框架 Megatron-LM
人工智能·分布式