物聯網架構成長之路(5)-EMQ插件配置


1. 前言
  上一小結說了插件的創建,這一節主要怎么編寫代碼,以及具體流程之類的。
2. 增加一句Hello World
  修改 ./deps/emq_plugin_wunaozai/src/emq_plugin_wunaozai.erl 增加一行Hello World

  增加后,保存

1 make clean
2 make
3 cp -r ebin ../../_rel/emqttd/lib/emq_plugin_wunaozai-2.3.1

  這樣就把最新版本復制到_rel 目錄下了。

  回到eqm-relx 目錄

1 ./_rel/emqttd/bin/emqttd console

3. 重新加載/卸載插件

1 ./_rel/emqttd/bin/emqttd_ctl plugins unload emq_plugin_wunaozai
2 ./_rel/emqttd/bin/emqttd_ctl plugins load emq_plugin_wunaozai

  下面是運行效果,可以看見,重新打印Hello World ,表示重新加載了

4. 開啟熱加載
  啟動官方提供的熱加載插件,可以通過上面那種./emqttd_ctl 進行加載,或者管理界面加載

  我們重新修改./emq-relx/deps/emq_plugin_wunaozai/src/emq_plugin_wunaozai.erl 把剛才的Hello World 改成 Test Reload.
  然后

1 make clean
2 make 
3 cp -r ebin ../../_rel/emqttd/lib/emq_plugin_wunaozai-2.3.1

  然后看emq-relx/_rel/emqttd/log/reloader.log

  下面紅框圈住的就是我執行 cp 復制是觸發的重新加載。
  注意,如果此時你有看剛才 ./_rel/emqttd/bin/emqttd console 啟動后的那個打印,就知道,這個熱啟動,是沒有打印 start wunaozai Test Reload. 這一行信息的。
  通過 ./_rel/emqttd/bin/emqttd_ctl reload emq_plugin_wunaozai 這個命令,也是只打印log/reloader.log 日志,而不觸發load事件。
  而通過

1 ./_rel/emqttd/bin/emqttd_ctl plugins unload emq_plugin_wunaozai 
2 ./_rel/emqttd/bin/emqttd_ctl plugins load emq_plugin_wunaozai 

  或者在 web控制台,

  點擊stop 然后start 就會打印 Test Reload. 觸發load事件

5. 說明
  通過上述說明一個事,就是在開發過程中, 可以先用console模式開啟EMQ服務,然后開啟熱加載模塊插件,然后在emq-relx/deps 寫插件代碼,然后通過腳本make clean && make && cp 把插件拷貝到運行環境中。Erlang 是支持熱部署的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM