写点什么

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

作者:CnosDB
  • 2023-10-16
    内蒙古
  • 本文字数:1800 字

    阅读完需:约 6 分钟

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

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


构建高性能物联网数据平台:EMQX 和 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 构建实时数据流处理应用的教程。


安装

您可以按照官网教程[https://www.emqx.io/docs/zh/v5.2/getting-started/getting-started.html],下载并安装 EMQX,推荐使用 Docker 安装镜像的方式安装。安装 EMQX 后,通过浏览器访问http://localhost:18083/ ,如下图所示:


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


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


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


存储

若想将相应的信息存储到 CnosDB 中,可以先参照文档[https://docs.cnosdb.com/zh/latest/start/install.html]启动 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 构建实时数据流处理应用的全部教程,希望本次博客可以帮到您。

发布于: 刚刚阅读数: 5
用户头像

CnosDB

关注

还未添加个人签名 2022-04-18 加入

打造高性能、高压缩比、高可用的分布式云原生时间序列数据库,引领世界迈向万物智联 欢迎关注 https://www.cnosdb.com

评论

发布
暂无评论
构建高性能物联网数据平台:EMQX和CnosDB的完整教程_开源_CnosDB_InfoQ写作社区