我的mqtt协议和emqttd开源项目个人理解(24) - emq v2.3.11源码成熟度如何?

探讨EMQX MQTT Broker在高负载下稳定性问题,特别是在大量消息向少数订阅者发送时可能出现的内存溢出和宕机现象。文章分析了EMQX CPU资源分配机制,并提出了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码:https://github.com/emqx/emqx-rel/tree/v2.3.11

https://github.com/emqx/emqx/tree/v2.3.11/src

从原作者那边了解到,总体还可以,但是做不到99.99%稳定。主要是连接内存占用没有保护。

pubsub均衡时很稳定,但是集群或大量消息向少量订阅发布时会崩溃,小概率情况。

EMQ中CPU是公平分配给MQTT会话,大量pub消息到一个订阅,订阅不会拿到更多cpu,最终导致消息累积,内存溢出宕机。

详情和解决方法请看:我的mqtt协议和emqttd开源项目个人理解(18) - 一个客户端sub很多主题,出现宕机?

崩溃可能发生在网络波动,大量消息向少量订阅发布,容量不够,集群脑裂,出现异常订阅发布等情况。

 

所以,客户端要做好连接back off,即连接退避,防止连接风暴。就是说服务器崩溃了,重启时,要防止海量客户端同时接入。

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值