目前有幾款免費的 MQTT Broker,
但是免費且支援 Cluster 架構的很少。
最知名的 Broker - Mosquitto,
我個人沒有找到官方文件指出可以架設 Cluster HA 的機制,
之前聽也 Survey 過 MQTT Broker 的同事說過它不支援。
最後挑了三套作評估:VerneMQ、EMQX、HiveMQ。
這三套都支援 Cluster 架構。
HiveMQ 本來是個付費軟體,但在今年大約四五月的時候,推出了免費的 Community 版。
在細看 Community 版和付費版的差異後
發現 Community 版不支援 Cluster,
所以也就淘汰它了,
不然他是個純 Java 開發的軟體,這點倒對我個人有吸引力。
MQTT Broker 最後我選用了 EMQX 有幾個考量評估的點:
- 知名度和討論度:
- Wiki 上的一篇文章 Comparison of MQTT implementations 所列的產品,它在表中呈現出來功能較為豐富。
- 在 Google Trend 的比較中,它都算是比較高談論度。在中國最高,因為這套主要是中國人開發維護的。
- 在GitHub 上(2019/10) Watch:321、Star:5078、Fork:964、Contributors:43,在競爭對手中,都是最高的
- 免費: Apache License 2.0
- 提供 Cluster HA架構: 它是極少數免費 Broker 有提供 Cluster
- 持續維護的狀況:Contributors:43,近一年主要有維護的人員數,也是比競爭對手高。GitHub上的 Issue,也持續有回覆和討論。
- 功能性:除了 MQTT 規格特性以外,也提供 Dashboard 可以觀看連線狀況,並提供 REST API 可以即時設定和取得連線狀態和Client 資訊,例如:使用者帳號
- 支援多種作業平台,包含 Windows ,這點剛好是對我們單位的加分條件
1. 在我們 Survey Broker 的過程,不同的 Broker 都提到測試、驗證、支援這一套
2. 他是很老牌的 Client Library
3. 有多種程式語言版本: Java、 C、C#、JavaScript等等,這樣可以依照不同的情境需要選用對應的程式語言。
4. Java等部份版本支援斷線自動重連
5. 大多數語言支援HA,除了C#、Python、Embedded C/C++
沒有留言:
張貼留言