一.前言 这里虽然是说MQTT客户端.其实对于服务器来说,这里的一个具有超级权限的MQTT客户端,就可以做很多事情.比如手机APP或者网页或者第三方服务需要发送数据到设备,但是这些又不是设备,又不能让他们连到MQTT.那么就可以通过HTTP请求业务服务器.然后由业务服务器利用这个MQTT客户端进行发送数据. 还有,之前好多人问我,怎么保存这些物联网数据,真的要像前面的博客那样,要自己写插件吗?特别麻烦的啊.这里给出的结论是不需要.保存数据,除了写EMQ插件,还可以在EMQ的规则引擎上进行配置We…
1. 前言 下载最新版的JavaEE eclipse-jee-oxygen-2-win32-x86_64.zip 安装STS插件 Window->Eclipse Marketplace -> popular 下那个 Spring Tools(aka Spring IDE and Spring Tool Suite) 然后通过STS工具创建一个新的Spring boot工程,这里就不细说了.网上资料很多,也比较简单就可以搭建起来.后面对SpringBoot也只是简单的提一下,还有说一下注意点.没…
使用thymeleaf作为模版进行测试 在pom.xml 增加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 在application.properties中进行配置 #thymeleaf start spring.thymel…
0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联网架构.好了,废话不说,开始咯. 1. 构建STUNServer服务 STUN服务,是一个标准的服务,用户判断当前外网IP,主要用于NAT判断.我使用的是 https://github.com/jselbie/stunserver 这个开源的STUN服务,直接 git clone 下来,执行dock…
看过之前的文章就知道,我之前是通过搞插件,或者通过里面的MongoDB来进行EMQ的鉴权登录和权限验证.但是前段时间发现,还是通过HTTP WebHook 方式来调用鉴权接口比较适合实际使用.还是实现设备分配一个device_id和device_key两个信息.即登录我们的业务服务器,同时登录EMQ通信服务器.免去了中间获取临时登录MQTT-Token的流程. 下面就看这么实现基于HTTP的Auth. 首先在EMQ的后台,管理-插件-emqx_auth_http中开启插件.(注意由于距离上次已经…
1. 前言 EMQTT属于一个比较小众的开源软件,很多资料不全,很麻烦,很多功能都是靠猜测,还有就是看官方提供的那几个插件,了解. 2. 说明 上一小节的插件 emq_plugin_wunaozai 文件 emq_plugin_wunaozai.erl 这个文件就是Hook钩子设计了,里面默认已经有了.比如在 on_client_connected这个函数下增加一行 io:format()打印,那么,对应每个mqtt客户端连接到服务器都会打印这一行.一开始我还以为验证逻辑写在这里,然后通过判断,…
1. 前言 按照我自己设计的物联网框架,对于MQTT集群中的所有消息,是要持久化到磁盘的,这里采用一个消息队列中间件Kafka作为数据缓冲,缓冲结果存到数据仓库中,以供后续作为数据分析.由于MQTT集群中的消息都是比较分散的,所以使用Kafka来聚合.采集消息. 2. 下载&编译&安装 Kafka依赖ZooKeeper 在这里下载 http://mirrors.shuosc.org/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar…
1.前言 现在慢慢也在负责一些工作了.这段时间有空,就多了解了解软件多人开发的一些知识.以前项目都是我一个人做的,从数据库设计到后端再到前端,全部放在一个war包丢到tomcat里面然后运行,利用tomcat自带的manager插件做简单的部署.根本没有版本管理的概念. 现在项目开始涉及多人合作,多项目模块整合,各个中间件等等,越来越复杂了.今天碰巧了解到Jenkins工具.一个CI持续集成工具. CI持续集成,第一次了解到,摘抄一下解释: 持续集成是一种软件开发实践,即团队开发成员经常集成他们…
0.前言 前段时间,考虑到要练习部署一套CI/CD的系统.一开始考虑到Jenkins,随着这两天的了解,发现最新版的GitLab已经提供有CI/CD集成了.所以本次博客,干脆一步到位,直接用GitLab里面的CI/CD模块.Jenkins可能需要更高级的应用场合.经过测试GitLab自带的功能完全符合我的需求. 1. 安装GitLab和GitLab-CI(gitlab-runner) 英语比较好的,可以直接看官方文档.https://docs.gitlab.com/omnibus/docker/…
一.前言 时隔一年半,技术变化特别快,学习也要跟上才行.以前写过EMQ数据转存问题,当时用了比较笨的方法,通过写插件的方式,把MQTT里面的数据发送到数据库进行存储.当时也是为了学习erlang和emq.现在随着对物联网的深入,也结合实际需求,不停的学习.下面将介绍我实验测试可行的物联网数据分析解决方案.采用的还是开源方案.通过订阅MQTT的根Topic,把所有物联网数据转存到InfluxDB时序数据库,然后通过Grafana进行图表显示.这应该是目前比较流行的方案.二.安装InfluxDB I…