本文整理自 EMQX 产品经理李国伟,在PolarDB开源社区中关于EMQX与PolarDB-X构建一站式IoT数据解决方案的分享。本篇内容主要分为四个部分:
1. IoT数据特性
2. EMQX介绍
3. EMQX与PolarDB-X集成
4. EMQX+PolarDB-X方案DEMO
一、IoT数据特性
物联网应用场景离不开数据的采集、传输、存储、分析等过程。大家可以按照数据特性以及业务需求,把物联网数据划分为元数据、消息数据、时序数据。如上图所示,数据集通过EMQX连接设备,实现数据存储。
元数据是设备最新的状态数据,如在线状态、当前传感器数值。消息数据是设备发布的消息,包括上报数据和下发指令。时序数据是持续变化的元数据和消息数据。
在物联网应用中,数据存储的需求无处不在。元数据、消息数据经过存储使用后,可以支撑起各类业务需求。由于连接数规模、采集点数量庞大,不同的数据业务,需要对应不同的数据库选型。
元数据需要频繁插入更新,并且支持结构化查询,所以推荐使用关系数据库,进行存储。
消息数据不需要全量存储,只需要记录关键操作,或者提取消息数据的关键数据,应当根据业务情况适当的选型。
时序数据的特点是,数据修改频次低,海量数据对写入速度和存储压缩比敏感,查询需求多样,所以推荐使用时序数据库。
二、EMQX介绍
MQTT是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计。
MQTT协议是基于发布/订阅模式的物联网通信协议,凭借简单易实现、支持QoS、报文小等特点,占据了物联网协议的半壁江山。
MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力、能源等领域,既能作为网关在设备侧接入通信,也能作为设备-云端的通信协议:行业内ZigBee、LoRa、Modbus等绝大多数网关协议最终都转换为MQTT协议接入上云。
EMQX是MQTT代理,即MQTT消息服务器。它将设备和应用联系起来,充当设备与设备、设备与应用之间的桥梁。
EMQX是一个大规模分布式的物联网专用的MQTT消息服务器。它可以高效可靠的连接海量物联网设备,提供高可靠、高性能的实时数据移动、处理和集成,助力构建关键业务的物联网平台和应用。
EMQX基于Apache 2.0许可证完全开源,自2013年起200+开源版本迭代,在全球都有广泛的用户。
EMQX在协议的支持度、接入、吞吐、延迟等方面有显著的优势。在最新发布的5