TDengine MQTT 挑战赛第一期——使HiveMQ支持存储数据到TDengine中

物联网通信是物联网的一个核心内容,目前物联网的通信协议并没有一个统一的标准,比较常见的有 MQTT、CoAP、DDS、XMPP 等,在这其中,MQTT(消息队列遥测传输协议)应该是应用最广泛的标准之一。其主要提供了订阅/发布两种消息模式,非常简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发。

发展到今天,MQTT Broker 也已经有了诸多实现,包括 EMQ X、HiveMQ、Mosquito 等等。物联网数据采集涉及大量设备接入和海量的时序数据传输,这些 MQTT Broker 能够与 TDengine 完美组合,应对物联网场景中的海量时序数据的传输、存储和计算。

前段时间,在EMQ X 研发团队和 TDengine 研发团队的共同努力下,我们已经实现了EMQ X 通过规则引擎将设备消息存储到 TDengine 中(点击这里,阅读详细内容)。在双方开源社区都获得了积极的反馈。

TDengine 社区也有不少伙伴都在问,是否支持从其他 MQTT Broker 存数据到 TDengine 中。鉴于 TDengine 是开源且包容的,我们打算,让这个问题,从社区中来,到社区中去。未来我们将举办一系列 MQTT 挑战赛,第一期就从 HiveMQ 开始。本期挑战最终要向开源社区小伙伴交付一个 HiveMQ extension:使 HiveMQ 使用 TDengine 存储收到的数据。

TDengine MQTT 挑战赛第一期——使HiveMQ支持存储数据到TDengine中 - TDengine Database 时序数据库

当然,奖金也是非常丰厚的,我们不是标题党,只要你的程序符合我们的接收标准,TDengine官方奖励一万元人民币,并且邀请你加入 TDengine Contributor 俱乐部。

你需要做到什么?

开发要求

1. 支持 TDengine 2.0 RESTful API 和 JDBC API 进行数据存储

2. 支持 HiveMQ v4,遵守 HiveMQ extension 开发规范,详见:

https://www.hivemq.com/docs/hivemq/4.5/extensions/introduction.html

3. 符合HiveMQ 的 extension 测试要求,并提供测试报告。详见:

https://www.hivemq.com/docs/hivemq/4.5/extensions/testing-extension.html

4. 长时间运行无内存泄漏。

5. 支持 Docker 部署环境

其他要求

1. 提供完整的文档,描述代码逻辑架构、编译步骤和 TDengine / HiveMQ 共同部署方法。

2. 代码需要以 Apache 或 MIT 或 BSD License 之一开源。

如何验证你的工作?

验证方法

1. 使用 HiveMQ Community Edition 的 Docker 镜像部署 HiveMQ MQTT broker:

HiveMQ Community Edition 下载地址:

https://github.com/hivemq/hivemq-community-edition

2. 使用 TDengine 2.0 社区版进行数据落盘存储:

TDengine 2.0 社区版下载地址:

https://www.taosdata.com/products/#community-edition-link

3. 使用开源软件MQTTLoader进行 MQTT 多客户端消息发送压力测试(为便于测试,使用本机或者局域网环境进行压力测试):

MQTT Loader 下载地址:

https://github.com/dist-sys/mqttloader

如何提交你的作品?

交付要求

1. 按照上述开发要求实现的HiveMQ extension;

2. 按照上述其他要求编写的完整且详尽的文档。

提交方式

开发者需在竞赛期限内提供 extension 源代码和文档(MarkDown格式),提交 Pull Request 到 TDengine 在 GitHub 的 Repo。

你将获得什么?

优胜奖

1. 优胜者获得现金奖励 10,000 元 RMB(税前);

2. 成为 TDengine Contributor 俱乐部成员,受邀参与 TDengine 线上、线下社区活动。

*优胜者:以代码被TDengine接收为准,评选出一名。

积极参与奖

所有参加竞赛并提交作品者均会获得 TDengine 纪念礼品一件。

重要时间节点

竞赛起始时间:9月 8 日

作品提交截止时间:10 月 7 日

作品评选时间:10 月 8 日~ 10月 22 日

参赛的同学,可以微信搜索“tdengine”添加小T为好友,备注“mqtt”,方便提交作品后与我们取得联系。