EMQ X

EMQ X 规则引擎系列(十三)- 消息写入到 TimescaleDB

六眼飞鱼酱① 提交于 2019-12-17 10:54:46
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> TimescaleDB 介绍 面对大规模快速增长的物联网传感器采集、交易记录等数据,时间序列数据累计速度非常快,时序数据库通过提高效率来处理这种大规模数据,并带来性能的提升,包括:更高的容纳率(Ingest Rates)、更快的大规模查询(尽管有一些比其他数据库支持更多的查询)以及更好的数据压缩。 TimescaleDB 是一款针对快速获取和复杂查询而优化的开源时间序列数据库。 它使用 标准的 SQL 语句 ,并且像传统的关系数据库那样容易使用,像 NoSQL 那样可扩展。 TimescaleDB是在 PostgreSQL 数据库的基础上进行开发的,所以使用方法基本和传统数据库一致。它可以支持复杂的SQL查询,并针对时间序列数据的快速插入和复杂查询、持久存储进行了优化,特别适合用于监控,IoT,金融,物流等大数据领域。 场景介绍 该场景需要将 EMQ X 指定主题下且满足条件的消息存储到 TimescaleDB。为了便于后续分析检索,消息内容需要进行拆分存储。 该场景下客户端上报数据如下: Topic:data/sensor Payload: { "location": "bedroom", "temperature": 25, "humidity": 46.4 } 准备工作 创建数据库 创建 tutorial

EMQ X Enterprise (MQTT Broker) + Apache Kafka 构建高性能物联网消息处理后台

南楼画角 提交于 2019-12-17 10:11:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 背景 在各类物联网项目中,设备产生的消息不仅仅作用于设备之间,还需要供业务系统使用以实现如安全审计、流量计费、数据统计、通知触发等功能,类似很容易通过以下原型系统完成: 该原型中需要在 EMQ X 上维护多个数据通道,以供每个业务环节按照各自需求从 EMQ X 中获取消息数据。这种解决方案的问题在于: 每个业务需要与 EMQ X 建立数据通道,数据通道的建立与保持需要额外的资源开销,数据同步速度严重影响 EMQ X 高速消息交换; 随着业务增长,每次新增业务环节都需要牵动整个系统变更; 由于每个环节处理速度与时序不一样,消息量较大时部分业务会出现阻塞情况,进一步产生数据丢失、系统稳定性降低等严重后果。 以上问题与当下互联网应用中遇到的问题高度一致,即多个业务系统之间的数据集成与数据同步问题。互联网应用中普遍集成消息队列以进行削峰、限流、队列处理等操作,实现数据与业务的解耦,借助 EMQ X 提供的 RabbitMQ、Kafka、RocketMQ、Pulsar 等消息与流中间件桥接功能,物联网项目也可以使用该模型来解决以上问题。 本文以常见物联网使用场景为例,介绍了如何利用 EMQ X 消息中间件与开源流处理平台 Kafka 处理物联网海量消息数据,以高可靠