google-code-prettify

2019年11月12日 星期二

MQTT Broker 選擇


目前有幾款免費的 MQTT Broker,
但是免費且支援 Cluster 架構的很少。

最知名的 Broker - Mosquitto,
我個人沒有找到官方文件指出可以架設 Cluster HA 的機制,
之前聽也 Survey 過 MQTT Broker 的同事說過它不支援。

最後挑了三套作評估:VerneMQ、EMQX、HiveMQ。
這三套都支援 Cluster 架構。
HiveMQ 本來是個付費軟體,但在今年大約四五月的時候,推出了免費的 Community 版。
在細看 Community 版和付費版的差異後
發現 Community 版不支援 Cluster,
所以也就淘汰它了,
不然他是個純 Java 開發的軟體,這點倒對我個人有吸引力。


MQTT Broker 最後我選用了 EMQX 有幾個考量評估的點:

  1. 知名度和討論度:
    • Wiki 上的一篇文章 Comparison of MQTT implementations 所列的產品,它在表中呈現出來功能較為豐富。
    • 在 Google Trend 的比較中,它都算是比較高談論度。在中國最高,因為這套主要是中國人開發維護的。
    • 在GitHub 上(2019/10) Watch:321、Star:5078、Fork:964、Contributors:43,在競爭對手中,都是最高的
  2. 免費: Apache License 2.0
  3. 提供 Cluster HA架構: 它是極少數免費 Broker 有提供 Cluster
  4. 持續維護的狀況:Contributors:43,近一年主要有維護的人員數,也是比競爭對手高。GitHub上的 Issue,也持續有回覆和討論。
  5. 功能性:除了 MQTT 規格特性以外,也提供 Dashboard 可以觀看連線狀況,並提供 REST API 可以即時設定和取得連線狀態和Client 資訊,例如:使用者帳號
  6. 支援多種作業平台,包含   Windows ,這點剛好是對我們單位的加分條件


MQTT Client  Library 選擇 Eclipse Paho 有幾個考量點:
1.       在我們 Survey Broker 的過程,不同的 Broker 都提到測試、驗證、支援這一套
2.       他是很老牌的 Client Library
3.       多種程式語言版本: Java CC#JavaScript等等,這樣可以依照不同的情境需要選用對應的程式語言。
4.       Java等部份版本支援斷線自動重連
5.       大多數語言支援HA,除了C#PythonEmbedded C/C++


沒有留言:

張貼留言