物聯網通信是物聯網的一個核心內容,目前物聯網的通信協議并沒有一個統一的標準,比較常見的有 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官方獎勵一萬元人民幣,并且邀請你加入 TDengine Contributor 俱樂部。
你需要做到什么?
開發要求:
1. 支持 TDengine 2.0 RESTful API 和 JDBC API 進行數據存儲
2. 支持 HiveMQ v4,遵守 HiveMQ extension 開發規范,詳見:
3. 符合HiveMQ 的 extension 測試要求,并提供測試報告。詳見:
4. 長時間運行無內存泄漏。
5. 支持 Docker 部署環境
其他要求:
1. 提供完整的文檔,描述代碼邏輯架構、編譯步驟和 TDengine / HiveMQ 共同部署方法。
2. 代碼需要以 Apache 或 MIT 或 BSD License 之一開源。
如何驗證你的工作?
驗證方法:
1. 使用 HiveMQ Community Edition 的 Docker 鏡像部署 HiveMQ MQTT broker:
HiveMQ Community Edition 下載地址:
2. 使用 TDengine 2.0 社區版進行數據落盤存儲:
TDengine 2.0 社區版下載地址:
//www.yakult-sh.com.cn/products/#community-edition-link
3. 使用開源軟件MQTTLoader進行 MQTT 多客戶端消息發送壓力測試(為便于測試,使用本機或者局域網環境進行壓力測試):
MQTT Loader 下載地址:
如何提交你的作品?
交付要求:
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”,方便提交作品后與我們取得聯系。



























