构建高性能物联网数据平台:EMQX和CnosDB的完整教程

CnosDB 是一款高性能、高压缩率、高易用性的开源分布式时序数据库。主要应用场景为物联网、工业互联网、车联网和IT运维。所有代码均已在GitHub开源。本文将介绍如何使用EMQX 这一MQTT 服务器 + CnosDB 构建物联网数据平台,实现物联网数据的实时流处理。

前言

在物联网项目中接入平台的设备数据和数据存储方案有以下特点:

  • 数据采集的维度、频率、以及设备数量都比较多,采集的数据量比较大,对消息服务器的接入吞吐量、后端数据库的存储空间消耗有很大压力。
  • 数据按照采集周期进行上报、传输、存储一般都按照时间序列。

因此,在物联网项目中使用时序数据库是一个明智的选择。时序数据库可以带来显著的性能提升,包括更高的容纳能力、更快的大规模查询速度以及更出色的数据压缩率等。

介绍

CnosDB 是一款高性能、高压缩率、高易用性的开源分布式时序数据库。主要应用场景为物联网、工业互联网、车联网和IT运维。所有代码均已在GitHub开源。本文将介绍如何使用EMQX 这一MQTT 服务器 + CnosDB 构建物联网数据平台,实现物联网数据的实时流处理。

MQTT 基于发布订阅模式,它解耦了消息的发送方(发布者)和接收方(订阅者),引入了一个中间代理的角色来完成消息的路由和分发。发布者和订阅者不需要知道彼此的存在,他们之间唯一的联系就是对消息的一致约定,例如消息将使用什么主题、消息将包含哪些字段等等。这让 MQTT 的通信更加灵活,因为我们可以随时动态地增加或减少订阅者和发布者。通过发布订阅,我们可以轻易地实现消息的广播、组播和单播。

EMQX 是一款开源的大规模分布式 MQTT 消息服务器,功能丰富,专为物联网和实时通信应用而设计。EMQX 5.0 单集群支持 MQTT 并发连接数高达 1 亿条,单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息,并保证延迟在亚毫秒级。EMQX 支持多种协议,包括 MQTT (3.1、3.1.1 和 5.0)、HTTP、QUIC 和 WebSocket 等,保证各种网络环境和硬件设备的可访问性。EMQX 还提供了全面的 SSL/TLS 功能支持,比如双向认证以及多种身份验证机制,为物联网设备和应用程序提供可靠和高效的通信基础设施。

下面将详细介绍使用 EMQX 和 CnosDB 构建实时数据流处理应用的教程。

安装

您可以按照官网教程 [快速开始 | EMQX 5.2 文档],下载并安装EMQX,推荐使用Docker安装镜像的方式安装。安装EMQX后,通过浏览器访问http://localhost:18083/ ,如下图所示:

其中初始用户名为:admin,密码为:public。登录完成后,您可以访问EMQX Dashboard,查询相应的IP地址以及端口信息,如下图所示:

完成EMQX的配置后,您可以参考相关文档 [MQTTX 下载]下载MQTT客户端,进入客户端后,点击相应的+号,创建新的连接,如下图所示:

您可以参照图中的配置,配置您的连接。连接成功后,如下图所示,可以点击发送消息按钮,发送相应的信息。

存储

若想将相应的信息存储到CnosDB中,可以先参照文档 [安装 | 文档]启动CnosDB。并在CnosDB中创建一个新的数据库。转到 Dashboard 数据集成 -> 数据桥接页面。点击页面右上角的创建。在数据桥接类型中选择 HTTP服务,如下图所示:

按照下图示例格式配置您的HTTP服务连接,其中URL部分,IP换为您本地电脑的IP。请求头的键值,根据您本地CnosDB配置的用户和密码信息设置,为其对应的base64值。譬如本次用户名密码为"root:",那么Authorization的值就为echo "Basic $(echo "root:"|base64)",也就是"Basic cm9vdDoK"。需要注意的是,您应该根据您的数据格式配置请求体,以便数据能够正确写入到CnosDB中。整体配置界面如下图所示:

配置完相应的信息后,您就可以测试连接,如果连接成功,就意味着您可以配置相应的SQL规则,将数据存储到CnosDB中了。SQL规则需与MQTT发送的信息以及上一步中的请求体设置相一致,本次采用的示例如下所示,您可以参照我们提供的示例来设置您的数据格式和SQL规则:

设置完SQL规则后,您可以运行示例数据,来检查SQL规则是否有效。譬如本次需要MQTT发送的示例数据就可以被现在设置的SQL规则解析成如下的形式,这也与HTTP服务设置中的请求体相符合。

设置完SQL规则,在MQTT中发送相应的数据,您就可以发现数据被发送成功并且储存在CnosDB中了,如下所示:

以上就是使用EMQX 和 CnosDB 构建实时数据流处理应用的全部教程,希望本次博客可以帮到您。

CnosDB简介

CnosDB是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。

欢迎关注我们的社区网站:https://cn.cnosdb.com

相关推荐
AI服务老曹5 小时前
建立更及时、更有效的安全生产优化提升策略的智慧油站开源了
大数据·人工智能·物联网·开源·音视频
明达技术5 小时前
LVDS高速背板总线:打造分布式I/O高效数据传输新境界
分布式·物联网·自动化·lvds
BY-组态1 天前
组态软件基础知识
物联网·web组态·组态·scada·组态软件
__XWH1999__1 天前
IOT物联网低代码可视化大屏解决方案汇总
物联网·低代码
嵌入式种树2 天前
基于STM32的智能物联网家用机器人设计
stm32·物联网·机器人
神一样的老师2 天前
多级物联网(IoT)基础异构无线传感器网络(HWSNs)中的节点角色选择与轮换方案以提高能效
物联网
神一样的老师2 天前
基于物联网的公共街道照明系统设计与构建
物联网
树莓集团2 天前
用科技力量,重塑数字化园区新生态!
大数据·人工智能·科技·物联网·媒体
vfbox33982 天前
采集 C-DLT645电表 转 IEC61850项目案例
物联网·iec61850·vfbox·协议转换工业网关·c-dlt645电表
沐欣工作室_lvyiyi3 天前
基于单片机的直流稳压电源的设计(论文+源码)
stm32·单片机·嵌入式硬件·物联网·毕业设计