1 概述
EMQX數據集成功能,幫助用戶將所有的業務數據無需額外編寫代碼即可快速完成處理與分發。
數據集成能力由連接器和規則兩部分組成,用戶可以使用數據橋接或 MQTT 主題來接入數據,使用規則處理數據后,再通過數據橋接將數據發送到外部應用系統中。
例如,本地EMQX集群可以通過上述的連接器和規則來將數據復制一份到遠程EMQX集群。
2 部署兩個EMQX
通過一臺機器,docker run出兩個EMQX實例來模擬新數據的復制。
2.1 運行emqx-01,作為本地EMQX集群。
docker run -d --name emqx-01 -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest
1883端口emqx-01的mqtt端口。
18083端口是emqx-01的web控制臺。
2.2 運行emqx-02,作為遠程EMQX集群。
docker run -d --name emqx-02 -p 21883:1883 -p 28083:8083 -p 28084:8084 -p 28883:8883 -p 38083:18083 emqx/emqx:latest
21883端口emqx-02的mqtt端口。
38083端口是emqx-01的web控制臺。
3 為本地EMQX配置連接器和規則
創建連接器,選擇MQTT集群這個類型:
為連接器創建規則:
在規則中,先添加動作,該動作就是將輸入數據進行提取,然后發送到遠程集群:
在規則中,設置哪些本地數據應該復制到遠程,設置t/開頭的所有話題都應該被選中:
規則添加完成,如下圖:
4 測試
1)步驟1:
客戶端mqttx一直監聽emqx-02的話題t/a。
2)步驟2:
客戶端mqttx向emqx-01的t/a這個話題發布一個消息:
2)步驟3:
已經訂閱emqx-02的話題t/a的客戶端mqttx,馬上收到一個新的消息:
5 小結
本文介紹EMQX的原生的數據復制能力,并且通過單機模擬兩個EMQX服務來親自實踐,讓大家更好的理解零代碼純配置就能解決EMQX集群之間的數據分發。