物联网设备数据是如何流转的:基于EMQX与TDengine的前后端分离项目实践

简介: 物联网设备数据是如何流转的:基于EMQX与TDengine的前后端分离项目实践

背景


在我写TDengine极简实战:从采集到入库,从前端到后端,体验物联网设备数据流转这篇文章后,不少读者朋友评论、私信说可不可以提供代码参考学习下,那必须是可以的。那篇文章主要介绍了数据采集、数据传输、数据转发、数据解析、数据存储、数据查询、数据呈现、数据导出、消息推送的物联网设备数据流程过程,作为体验 TDengine 的极简实战项目,没引入过多的业务设计(复杂功能)以及异步解耦设计(消息中间件),甚至没有用到微服务架构。

image.png

在整理代码的过程中,我发现虽然整个项目并不复杂,但是涉及到的技术点较多,有必要对关键的组件进行说明;当前代码已经整理完毕,并升级 EMQX (4.2.4-->4.4.2)与 TDengine (2.2.0.0-->2.4.0.16)这两个核心服务组件为最新版。不过实践出真知,我还是建议大家能够自己动手实践下,因此我决定将实现的过程拆分为不同的模块,逐篇介绍下从数据采集、转发、存储、查询、推送、展现、导出的全过程,相当于这个极简实战项目相对详细的 README.md 文档。


人至践则无敌。


写作计划


将实现过程进行分解,拆分为几个关键步骤,在安排各篇文章时,尽量拆分为小的模块,小步快跑,初步暂定以下内容。


  1. 物联网设备数据流转之搭建环境:开源云原生分布式物联网MQTT消息服务器EMQX
  2. 物联网设备数据流转之搭建环境:开源高性能分布式支持SQL的时序数据库TDengine
  3. 物联网设备数据流转之实时数据从哪里来、如何转发:Node.js, MQTT, EMQX的Webhook
  4. 物联网设备数据流转之搭建后端服务框架:SpringBoot统一响应封装,全局异常拦截
  5. 物联网设备数据流转之数据如何存储:TDengine集成SpringBoot, MyBatisPlus实现ORM与CRUD
  6. 物联网设备数据流转之数据如何查询:TDengine条件查询, 聚合查询, 分页查询, TopN查询, 降采样
  7. 物联网设备数据流转之搭建前端服务框架:Vue3.0, ElementPlus, Axios, Echarts
  8. 物联网设备数据流转之前后端数据交互与展示:Layout, Cascader, Card, Dialog, Table, Pagination
  9. 物联网设备数据流转之数据如何进行可视化:Echarts图表
  10. 物联网设备数据流转之数据如何导出:Excel文件
  11. 物联网设备数据流转之数据何时存储:Spring事件及监听机制, 数据入库
  12. 物联网设备数据流转之数据如何实时推送至前端:WebSocket服务端推送
  13. 物联网设备数据流转之数据如何实时推送至前端:WebSocket前端接收
  14. 物联网设备数据流转之告警信息推送:TDengine-alert
  15. 物联网设备数据流转之历史数据从哪里来:TDengine批量写入数据


技术选型


image.png

  • 物联网终端技术:
  • MQTT
  • EMQX
  • Node.js
  • 后端技术:
  • SpringBoot
  • TDengine
  • TDengine-alert
  • MyBatisPlus
  • WebSocket
  • Lambda
  • HuTool
  • 前端技术:
  • Vue
  • vue-router
  • ElementPlus
  • Layout 响应式布局
  • Cascader 级联选择器
  • Card 卡片
  • Dialog 对话框
  • Table 表格
  • Pagination 分页
  • DateTimePicker 日期时间选择器
  • Message 消息提示
  • Echarts



适合谁看


从整个架构来看, TDengine 在整个系统中扮演的角色无非就是个数据库,所以其实也没多复杂,我们可以简单将其理解为类似 MySQL , PostgreSQL , MongoDB , ElasticSearch , HBase , ClickHouse 抑或 Redis 这种存储层,只是这对应的每一种存储方案有其独特之处,需要进行针对性的学习,关于 TDengine 各项功能的具体细节,我们这里不做展开,可参考前面写的 TDengine 入门系列共15篇文章。


希望熟悉物联网设备数据流转过程的后端工程师、前端工程师以及运维工程师。


如果你是一名后端工程师,我假设你的机器上当前已具备Java环境(JDK,Maven) 如果你是一名前端工程师,我假设你的工作环境肯定已经安装了Node.js 如果你是一名运维工程师,我假设你对Linux的基本操作必然已烂熟于心

可是,如果你是一个小白,那也没关系,经过这个系列,在熟悉物联网设备流转过程的同时你会顺便了解下如今主流的前后端分离技术栈是如何串联起来的。


你要学前端、后端还是运维?作为成年人,我三个都要学。


在实际工作中,我一直都建议团队里的同学要一专多能,前端的同学可以接触下后端或运维的知识,后端的同学也可以适当了解下前端的内容。接触并不代表一定要做,了解整体可以培养你的全局观,这是作为系统架构师的必备技能。假设作为前端工程师的你遇到了一个难题,你只会在前端的范围内钻研,可能这个问题在后端处理只是一行代码的事情,然而,你并不知道呀,所以会浪费不少时间。下图是一张来自于 GitHub 的2019年的后端工程师成长路线图,即一专多能的专:

image.png


有哪些收获


通过这个 TDengine 极简实践系列,你可以学到什么?


  1. 物联网设备数据流转过程
  2. Node.js模拟MQTT客户端
  3. EMQX WebHook消息路由
  4. TDengine亿级数据存储与查询
  5. TDengine-alert告警信息推送
  6. SpringBoot+MyBatisPlus服务端数据ORM、分页
  7. 统一响应封装、全局异常拦截
  8. Spring事件与监听机制
  9. Hutool与poi完成Excel文件导出
  10. WebSocket实时消息推送
  11. Vue3.0的基本使用
  12. ElementPlus主要组件应用
  13. ECharts数据可视化图表

image.png


扩展实践


这个项目本身是个 Demo 级的练手项目,仅提供一个想法与思路,当然如果你有心扩展,以下是一些不错的方向。 01.  该项目可以作为本科毕业设计的项目原型,加以完善、升级后可以作为毕业设计 02.  该项目可以作为初级前、后端工程师的练手项目,用以熟悉前后端的交互操作 03.  该项目还可以作为对物联网感兴趣的同学们一个入门实例进行扩展,深入体验物联网设备数据流转 04.  。。。

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
8月前
|
传感器 人工智能 物联网
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
1075 19
|
6月前
|
运维 监控 网络协议
物联网设备状态监控全解析:从告警参数到静默管理的深度指南-优雅草卓伊凡
物联网设备状态监控全解析:从告警参数到静默管理的深度指南-优雅草卓伊凡
212 11
物联网设备状态监控全解析:从告警参数到静默管理的深度指南-优雅草卓伊凡
|
6月前
|
机器学习/深度学习 人工智能 运维
星云智控自定义物联网实时监控模板-为何成为痛点?物联网设备的多样化-优雅草卓伊凡
星云智控自定义物联网实时监控模板-为何成为痛点?物联网设备的多样化-优雅草卓伊凡
171 8
Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备状态监测中的应用与挑战(167)
本文围绕基于 Java 的大数据实时流处理技术,深入探讨其在工业物联网设备状态监测中的应用与挑战。不仅介绍了技术架构、原理和案例,还引入边缘计算技术,提出应对数据质量、性能和安全等问题的策略。
|
10月前
|
物联网 Python
请问:如何使用python对物联网平台上设备的属性进行更改?
为验证项目可行性,本实验利用阿里云物联网平台创建设备并定义电流、电压两个整型属性。通过Python与平台交互,实现对设备属性的控制,确保后续项目的顺利进行。此过程涵盖设备连接、数据传输及属性调控等功能。
|
8月前
|
存储 监控 安全
工业物联网关应用:PLC数据通过智能网关上传阿里云实战
本文介绍如何使用智能网关将工厂PLC数据传输至阿里云平台,适合中小企业远程监控设备状态。硬件准备包括三菱FX3U PLC、4G智能网关和24V电源。接线步骤涵盖PLC编程口与网关连接、运行状态检测及天线电源接入。配置过程涉及通讯参数、阿里云对接和数据点映射。PLC程序关键点包括数据上传触发和温度值处理。阿里云平台操作包含实时数据查看、数据可视化和规则引擎设置。最后提供常见故障排查表和安全建议,确保系统稳定运行。
774 1
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
410 60
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
455 58
|
存储 数据采集 物联网
物联网技术在物流领域的应用会遇到哪些挑战?
物联网技术在物流领域的应用会遇到哪些挑战?
675 60
|
供应链 物联网 区块链
探索未来技术潮流:区块链、物联网、虚拟现实的融合与创新
【10月更文挑战第41天】随着科技的不断进步,新技术如区块链、物联网、虚拟现实等正在逐步渗透到我们的日常生活中。本文将深入探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,共同推动社会的进步。我们将通过具体的代码示例,展示这些技术在实际应用中的潜力和价值。无论你是科技爱好者,还是对未来充满好奇的探索者,这篇文章都将为你打开一扇通往未来的窗口。
229 56

相关产品

  • 物联网平台
  • 下一篇
    oss云网关配置