MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

记RabbitMQ异常宕机处理(rabbitmq宕机了怎么保证消息还能接收)

2025-05-02 10:43 huorong 精选文章 1 ℃ 0 评论

Hello,大家好!由于工作问题,一段时间没有更新文章了,今天跟大家分享一下小编昨天遇到的一个RabbitMQ的问题,大家有更好的建议或者处理方案也欢迎告诉小编。

近期小编负责开发一个会员系统,使用了RabbitMQ下发消息任务拉取汇总基础会员数据信息。然而测试运行一段时间功能正常,相关数据正常,小编也就将相关功能模块提交生产环境上线运行。然而大概运行两三个小时之后,整个RabbitMQ相关功能全部宕机(由于尚未完善异常处理机制,一时间无从下手),暂且只能先重启RabbitMQ服务以恢复正常系统运行(下下策)。

下面是小编使用到的RabbitMQ生产者端代码(C#):

using (var publish = new RabbitMQ.Publisher(RabbitMqConnKey, "bi", "bi.vipers", "bi.vipers.account"))

{

try

{

foreach (var vip in lst)

{

publish.Send<string>(vip.VipNO);

total++;

}

publish.Dispose();

}

catch (Exception)

{


}

finally

{

publish.Dispose();

}

}

恢复之后正常运转两三个小时之后又出现宕机情况,哎,先重启吧!这次小编已确定不是偶发事件,重启之后仔细观察RabbitMQ各项参数指标。果然!生产者每次下发Connections和Socket descriptors就会立即增长,而Socket descriptors最多只能7280,这下明白了!也就是生产者连接没有关闭,系统也来不及回收,最后撑爆系统!生产者下发任务之后加上一行Pubulish.Close(); 搞定!

好了,兄弟们!如果你有更好的设计方案,欢迎联系我!期待下次分享哦!#程序员那些事##C###程序人生#

Tags:rabbitmq修改密码

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言