EMQ源码之--EMQ的启动
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                EMQ源码之--EMQ的启动
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                又回到erlang了,使用了一段時(shí)間的golang再回到erlang有點(diǎn)那么的親切感。在項(xiàng)目中也準(zhǔn)備用mqtt來(lái)做消息上報(bào),順道就想看下他的代碼。
erlang中application都是通過(guò)supervisor來(lái)管理的,在emq中emqttd_sup是一個(gè)最大的supervisor,他下面面又連接了很多的supervisor或者worker。
ekka:start() emqttd_sup |-------->emqttd_ctl 負(fù)責(zé)從emqttd_ctl命令過(guò)來(lái)的rpc handler |-------->emqttd_hooks(hook 函數(shù)的處理) |-------->emqttd_router(各node之間的消息路由) |-------->emqttd_pubsub_sup(管理pubsub相關(guān)的supervisor) |-------->emqttd_pool_sup(emqttd_pubsub的supervisor)gproc_pool|----->emqttd_pubsub_1(worker)|----->emqttd_pubsub_2(worker) |-------->emqttd_pool_sup(emqttd_server的supervisor)gproc_pool|----->emqttd_server_1(worker)|----->emqttd_server_2(worker) |--------->emqttd_stats(stats topic相關(guān)的統(tǒng)計(jì)) |--------->emqttd_stats(metrics topic相關(guān)的統(tǒng)計(jì)) |--------->emqttd_pool_sup(pooler沒(méi)看到哪里用到了這快)gproc_pool|------->pooler_1(worker)|------->pooler_2(worker) |--------->emqttd_sm_sup( session management supervisor)gproc_pool|------->emqttd_sm_1(worker)|------->emqttd_sm_2(worker) |--------->emqttd_ws_client_sup(websocket client supervisor)gproc_pool|------->emqttd_ws_client_1(worker)|------->emqttd_ws_client_2(worker) |--------->emqttd_broker(broker統(tǒng)計(jì)相關(guān)handler) |--------->emqttd_alarm(系統(tǒng)alerm相關(guān)的handler) |--------->emqttd_mod_sup(管理外部mod的supervisor) |--------->emqttd_bridge_sup_sup(bridge supervisor) |--------->emqttd_access_control(auth/acl相關(guān)管理模塊) |--------->emqttd_sysmon_sup(system monitor supervisor)|-------->emqttd_sysmon(vm system monitor) register_acl_mod() start_listener()之后就開始socket監(jiān)聽了,等待新的連接到來(lái)。
erlang的優(yōu)勢(shì)在于他又一套完善的process 監(jiān)控系統(tǒng)。具體可以參考這里, 子進(jìn)程退出后supervisor會(huì)給你自動(dòng)重啟。
總結(jié)
以上是生活随笔為你收集整理的EMQ源码之--EMQ的启动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 使用腾讯bugly更新服务遇到的坑
- 下一篇: 阿里云移动端播放器高级功能---安全播放
