物联网架构成长之路(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集 ...
随机推荐
- python爬虫积累(一)--------selenium+python+PhantomJS的使用
最近按公司要求,爬取相关网站时,发现没有找到js包的地址,我就采用selenium来爬取信息,相关实战链接:python爬虫实战(一)--------中国作物种质信息网 一.Selenium介绍 Se ...
- go语言中goroute使用:=遇到的坑
先看下源代码,预想从1至N总取出所有能被a或b整除的正整数之和,为了利用go语言的并行优势,特使用goroute特性来实现,同时使用普通顺序计算进行效率比较分析 package chango impo ...
- Spring框架学习09——基于AspectJ的AOP开发
1.基于注解开发AspectJ (1)AspectJ注解 基于注解开发AspectJ要比基于XML配置开发AspectJ便捷许多,所以在实际开发中推荐使用注解方式.关于注解的相关内容如下: @Aspe ...
- 网页图表Highcharts实践教程之图表代码构成
网页图表Highcharts实践教程之图表代码构成 Highcharts第一个实例 下面我们来实现本书的第一个Highcharts实例. [实例1-1]下面来制作北京连续一周最高温度折线图.操作过程如 ...
- [Coding Study]——目录
Coding Study Source Code for cnblogs This is the source code for coding study, you can see my Coding ...
- 潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)
类的定义 共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 ) cls_name = '这个类的名字是Abc' # 在类 ...
- jQuery File Upload 判断图片尺寸,限定图片宽高的办法
1.必须熟读jQuery File Upload 文档,在add方法中进行判断,如果不符合条件,就用 data.abort()方法取消上传动作. $("file").fileupl ...
- System类与Runtime类
PS: Java程序在不同操作系统上运行时,可能需要取得平台相关的属性,或者调用平台命令来完成特定功能.java提供了System类与Runtime类来与程序的运行平台进行交互. System类: 1 ...
- tableview 选中一行后,不显示选中颜色
tableview 选中一行后,不显示选中颜色 千万不要将tableview的allowsSelection设置成NO,那样的话可能导致tableview不能响应点击动作. 应该使用:cell.sel ...
- POI设置excle单元格样式
Java利用POI生成Excel强制换行 使用POI创建一个简单的 myXls.xls 文件 常用的包为 org.apache.poi.hssf.usermodel.*; ...