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