zoukankan      html  css  js  c++  java
  • 物联网架构成长之路(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 是支持热部署的。

  • 相关阅读:
    springboot jpa junit测试遇到的问题
    解决Eclipse中.properties文件中文乱码问题
    java 学习笔记(五) Zookeeper的集群配置和Java测试程序
    Kotlin编译器使用及反编译分析
    Kotlin重新学习及入门示例
    SATB的标记问题解决之道与G1垃圾收集模式系统详解及最佳实践
    SATB深入详解与问题剖析【纯理论】
    三色标记算法在并发情况下的漏标问题分析【纯理论】
    G1混合式GC与三色标记算法详解【纯理论】
    G1垃圾收集器深度理论讲解【纯理论】
  • 原文地址:https://www.cnblogs.com/wunaozai/p/8137619.html
Copyright © 2011-2022 走看看