物联网架构成长之路(5)-EMQ插件配置
1. 前言
上一小结说了插件的创建,这一节主要怎么编写代码,以及具体流程之类的。
2. 增加一句Hello World
修改 ./deps/emq_plugin_wunaozai/src/emq_plugin_wunaozai.erl 增加一行Hello World
增加后,保存
make clean
make
cp -r ebin ../../_rel/emqttd/lib/emq_plugin_wunaozai-2.3.
这样就把最新版本复制到_rel 目录下了。
回到eqm-relx 目录
./_rel/emqttd/bin/emqttd console
3. 重新加载/卸载插件
./_rel/emqttd/bin/emqttd_ctl plugins unload emq_plugin_wunaozai
./_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.
然后
make clean
make
cp -r ebin ../../_rel/emqttd/lib/emq_plugin_wunaozai-2.3.
然后看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事件。
而通过
./_rel/emqttd/bin/emqttd_ctl plugins unload emq_plugin_wunaozai
./_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 是支持热部署的。
物联网架构成长之路(5)-EMQ插件配置的更多相关文章
- 物联网架构成长之路(4)-EMQ插件创建
1. 说明 以下用到的知识,是建立在我目前所知道的知识领域,以后如果随着知识的拓展,不一定会更新内容.由于不是EMQ公司的人,EMQ的文档又很少,很多知识点都是靠猜的.2. 一些资料 架构设计 htt ...
- 物联网架构成长之路(31)-EMQ基于HTTP权限验证
看过之前的文章就知道,我之前是通过搞插件,或者通过里面的MongoDB来进行EMQ的鉴权登录和权限验证.但是前段时间发现,还是通过HTTP WebHook 方式来调用鉴权接口比较适合实际使用.还是实现 ...
- 物联网架构成长之路(33)-EMQ数据存储到influxDB
一.前言 时隔一年半,技术变化特别快,学习也要跟上才行.以前写过EMQ数据转存问题,当时用了比较笨的方法,通过写插件的方式,把MQTT里面的数据发送到数据库进行存储.当时也是为了学习erlang和em ...
- 物联网架构成长之路(3)-EMQ消息服务器了解
1. 了解 物联网最基础的就是通信了.通信协议,物联网协议好像有那么几个,以前各个协议都有优劣,最近一段时间,好像各大厂商都采用MQTT协议,所以我也不例外,不搞特殊,采用MQTT协议,选定了协议,接 ...
- 物联网架构成长之路(6)-EMQ权限控制
1. 前言 EMQTT属于一个比较小众的开源软件,很多资料不全,很麻烦,很多功能都是靠猜测,还有就是看官方提供的那几个插件,了解. 2. 说明 上一小节的插件 emq_plugin_wunaozai ...
- 物联网架构成长之路(7)-EMQ权限验证小结
1. 前言 经过前面几小节,讲了一下插件开发,这一小节主要对一些代码和目录结构进行讲解,这些都是测试过程中一些个人经验,不一定是官方做法.而且也有可能会因为版本不一致导致差异. 2. 目录结构 这个目 ...
- 物联网架构成长之路(25)-Docker构建项目用到的镜像1
0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...
- 物联网架构成长之路(32)-SpringBoot集成MQTT客户端
一.前言 这里虽然是说MQTT客户端.其实对于服务器来说,这里的一个具有超级权限的MQTT客户端,就可以做很多事情.比如手机APP或者网页或者第三方服务需要发送数据到设备,但是这些又不是设备,又不能让 ...
- 物联网架构成长之路(8)-EMQ-Hook了解、连接Kafka发送消息
1. 前言 按照我自己设计的物联网框架,对于MQTT集群中的所有消息,是要持久化到磁盘的,这里采用一个消息队列中间件Kafka作为数据缓冲,缓冲结果存到数据仓库中,以供后续作为数据分析.由于MQTT集 ...
随机推荐
- 最短路径问题 HDU3790 (dijkstra)
基础的dijkstra问题 加上了花费 #include<bits/stdc++.h> using namespace std; ][][]; ];]; #define INF 9999 ...
- EXIST子查询
已知关系模式:S(Sno,Sname,Sclass),C(Cno,Cname,Cteacher),SC(Sno,Cno,Scgrade).其中,S为学生关系:Sno学号, Sname姓名,Sclass ...
- IdentityServer4-用EF配置Client(一)
一.背景 IdentityServer4的介绍将不再叙述,百度下可以找到,且官网的快速入门例子也有翻译的版本.这里主要从Client应用场景方面介绍对IdentityServer4的应用. 首先简要介 ...
- linux golang开发环境配置(离线方式)
<获取开发工具> 到https://www.golangtc.com/download 下载安装包, 根据自己的系统选择合适的开发包,这里选择go.1.9.2.linux-amd6 ...
- 系统windows版本修改
系统基本信息修改 系统windows版本修改 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com ...
- 4572: [Scoi2016]围棋 轮廓线DP KMP
国际惯例的题面:这种题目显然DP了,看到M这么小显然要状压.然后就是具体怎么DP的问题.首先我们可以暴力状压上一行状态,然后逐行转移.复杂度n*3^m+3^(m*2),显然过不去. 考虑状态的特殊性, ...
- Struts2返回json数据xml中配置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/ ...
- 使用 P6Spy 来格式化 SQL 语句,支持 Hibernate 和 iBATIS
事情起因 在处理一个查询小功能的时候,自认为 SQL 语句和传参均正确,然而查询结果无匹配数据,在查看 Hibernate 自带 SQL 语句输出的时候带着问好感觉有点不爽,特别是想复制 SQL 语句 ...
- ASP.NET 多次点击button后事件执行多次 并发解决 频繁操作解决办法
首先让我们体验一下频繁操作: 1)打开项目,在后台aspx.cs等服务器页面,设置断点. 2)点击页面按钮 3)调试开始进入断点,然后重复点击页面按钮 4)服务器第一次事件已经处理完毕,调试再次进入了 ...
- Hessian学习总结(一)——Hessian入门
一.远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http . tcp . udp 等等, http . ...