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

源码: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,即连接退避,防止连接风暴。就是说服务器崩溃了,重启时,要防止海量客户端同时接入。


上一篇:如何使用WorkManager执行后台任务(下)


下一篇:java关于Timer schedule执行定时任务 1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等