EMQ进程树/MQTT连接/订阅/发布源码流程分析

写在前面

EMQ作为一款优秀的开源MQTT broker,从一些库的使用以及框架的设计,可以看出作者也是非常精通Erlang的大牛!

比如说对于集群化,作者自己实现了Ekka库,对于网络并发,作者自己实现了esockd。首先不论这些库性能如何,但敢于自己造*,会造*,绝对是对Erlang/OTP有着深刻理解才可以做得到的。

学习了一下EMQ的一些关键业务代码,总结了连接/订阅/发布的源码,画出来进程/模块调用流程图如下。

进程树

EMQ进程树/MQTT连接/订阅/发布源码流程分析

连接

EMQ进程树/MQTT连接/订阅/发布源码流程分析
订阅

EMQ进程树/MQTT连接/订阅/发布源码流程分析
发布

EMQ进程树/MQTT连接/订阅/发布源码流程分析