四维纵横携手映云科技,共筑物联网新生态

日前,超融合时序数据库开创者北京四维纵横数据技术有限公司(yMatrix)与世界级开源物联网数据基础设施软件供应商杭州映云科技有限公司(EMQ)达成战略合作。

双方凭借各自技术和生态优势,针对物联网、车联网和工业互联网等领域打造完整解决方案,携手共建物联网新生态。四维纵横创始人姚延栋和高小明与映云科技创始人李枫及鲍宏宇,代表双方企业签署了战略合作协议。

此次,我们也对 EMQ X + MatrixDB 物联网一站式解决方案做了评测。凭借高性能物联网接入平台 EMQ X 和高性能分布式时序数据库 MatrixDB ,方案完美解决了高频数据端到端的高并发高可靠写入和高并发秒级查询两大难题,提供更加友好的体验,实现国产技术生态的完整闭环。

在展开讲解使用 EMQ X 设备如何接入 MatrixDB 之前,先行把测试结果奉上

EMQ X 完美接入 MatrixDB
JDBC INSERT 模式
单机吞吐量达21万行/秒!!!

1. 产品简介

1.1 EMQ X 是什么?

EMQ X 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器,由杭州映云科技有限公司开发。MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT连接,支持在海量物联网设备间低延时消息路由。

1.2 MatrixDB 是什么?

MatrixDB 是全球首款同时支持在线事务处理(OLTP)、在线分析处理(OLAP)和物联网时序应用的超融合时序数据库产品,具备严格分布式事务一致性、水平在线扩容、安全可靠、成熟稳定、可视化管理、兼容PostgreSQL / Greenplum 协议和生态等重要特性。为万物互联的智能时代提供坚实、简洁的智能数据核心基础设施,为物联网、车联网、工业互联网、智能运维、智慧城市、实时数仓、智能家居等场景提供一站式高效解决方案。

2. EMQ X 对接 MatrixDB 4大优势

  1. EMQ X 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。并且支持分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。
  2. EMQ X 支持完整物联网协议,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 和私有协议。
  3. MatrixDB 吞吐量极强,能更高效消费 EMQ X 的消息。
  4. MatrixDB 不仅是一款优秀的时序数据库,数据分析能力也很强,可以实现一库搞定数据接入与分析场景。

1

3. EMQ X对接MatrixDB性能测试

3.1 测试工具

本次测试工具使用XMeter性能测试平台。

XMeter简介 (https://www.xmeter.net/) : XMeter 是基于开源测试工具 JMeter 扩展的性能测试平台。针对物联网具有的接入规模大、弹性扩展要求、多种接入协议、混合场景等特点,XMeter对JMeter进行了改造,实现了百万级别并发测试支持,并对测试数据进行实时处理并图形化展示。

3.2 测试环境

华为云,北京四区VPC内网

EMQ X集群、MatrixDB配置:

测试工具:XMeter企业版v3.0.0

节点 数量 版本 操作系统 CPU 内存 硬盘
EMQ 3 企业版v4.3.0 CentOS7 32核 64G 40G
MatrixDB 1 企业版v4.0.2 CentOS7 32核 64G 100G
XMeter 5 企业版v3.0.0 CentOS7 16核 32G 40G

3.3 部署架构图

2

3.4 测试方法

测试语句如下:

INSERT INTO
    emqx_data
VALUES
    (
        to_timestamp(${p.ts} / 1000),
        ${p.tagid},
        ${p.altitude},
        ${p.azimuth},
        ${p.uv1},
        ${p.temperature},
        ${p.humidity},
        ${p.rainfall},
        ${p.pressure},
        ${p.wind},
        ${p.wind_direction},
        ${p.wind_direction_rotate},
        ${p.visibility}
    )

payload为json格式,如下所示: 3

3.5 规则引擎

资源设置: 4

规则设置: 5

4. EMQ X 对接 MatrixDB 测试结果

4.1 吞吐量

从下图统计信息可以看出,EMQ X 对接 MatrixDB 吞吐量达到了21万行/秒。 6

4.2 机器资源消耗

节点 CPU idle CPU user Memory free Memory used
EMQ X 25%~30% 61% 59G 3.3G
MatrixDB 28% 37% 1.6G 24G(数据库缓存+操作系统文件缓存)

5. 总结

  1. EMQ X 对接单节点 MatrixDB,以直接 INSERT 方式插入数据,吞吐量可以达到每秒21万行
  2. EMQ X 和 MatrixDB 所在机器的资源使用稳定

这些指标表明 EMQ X 集群在使用 INSERT 方式向 MatrixDB 灌入数据时, 吞吐量很高。另外,MatrixDB 还提供了 MatrixGate 数据加载工具,相比使用 INSERT 方式加载数据,还有10倍-100倍的提升空间。