2014-10-09 43 views

回答

12

你不能做蚊子聚類。

一些其他MQTT經紀人那裏支持集羣,包括HiveMQ。 HiveMQ具有自動發現和分佈式無主架構的彈性集羣能力,並且非常適合AWS或Azure等雲提供商。

您可以看到支持集羣here的所有經紀商的完整列表。

聲明:我是HiveMQ的開發者,所以這個答案可能有偏差。

+0

HiveMQ在Azure上的表現如何?默認情況下,Azure虛擬機具有ICMP阻塞,並且使用普通的Mosquitto實例,因此我們遇到了很多斷開連接。你能確認HiveMQ在最新的Azure虛擬機上運行良好嗎? – qgicup 2016-01-19 09:51:45

2

它不在Dominik提到的列表中,但Solace Systems有一個支持集羣的MQTT設備。每個代理支持數十萬個併發的客戶端連接。

免責聲明:我在安慰

2

已經設置一個HAProxy的前端,反向代理幾個聽我的經紀人已經解決了mosquitto集羣方式的系統工程師。

我也走了一步,利用DNS SD它與-S標誌mosquitto支持最新版本。

但是已有一些頭痛這樣的設計,即在dnssd和libresolv庫在大多數發行版不遵守resolv.conf中的域名和搜索領域的應用支持。

因此,如果您在傳統環境中工作,那麼我會建議您查看rabbitmq,hivemq或redis pubsub以獲取更多生產級解決方案,以便將其鎖定到現有的腳印中。

7

此答案的原始數據來源:Horizontal scaling for brokers。我只是添加了插件支持。 mosquitto經紀人合併的

兩種功能可以被用來設置一個n節點羣集。

  1. Mosquitto橋樑支座。
  2. 支持插件 - mosquitto認證 - 塞(1

橋的功能只是用來同步所有mosquitto經紀人之間的消息,而mosquitto認證 - 插件可以用來保存授權和訪問控制列表中單個數據庫後端。

雖然搭好橋,看到的輸入/輸出橋主題的使用,以避免轉發環路(2)。該模式是格式

topic pattern [[[ out | in | both ] qos-level] local-prefix remote-prefix] 

報價mosquitto.conf手冊頁(3),對於進來的話題,大橋將預先準備的格局與遠程前綴和訂閱所產生的話題上,遠程代理。當接收到匹配的傳入消息時,遠程前綴將從主題中刪除,然後添加本地前綴。反之亦然

示例mosquitto.conf 3節點羣集在下面。要用mqtt-malaria(4)進行負載測試,更重要的是將連接clean_session標誌的客戶端的標誌設置爲false,。

          +-------------------+ 
         +------------------> BRIDGE BROKER  <------------+ 
         |     | 192.168.1.1  |   | 
         |     +--------^----------+   | 
         |       |      | 
         |       |      | 
         |       |      | 
    Broker A    |    Broker B  |      | Broker C 
         |       |      | 
+----------------------+--+  +----------------+--------+   +--+----------------------+ 
| connection A   |  | connection B   |   | connection C   | 
|       |  |       |   |       | 
| address 192.168.1.1:1883|  | address 192.168.1.1:1883|   | address 192.168.1.1:1883| 
|       |  |       |   |       | 
| topiC# out 2 "" A/  |  | topiC# out 2 "" B/  |   | topiC# out 2 "" C/  | 
| topiC# in 2 "" B/  |  | topiC# in 2 "" A/  |   | topiC# in 2 "" A/  | 
| topiC# in 2 "" C/  |  | topiC# in 2 "" C/  |   | topiC# in 2 "" B/  | 
+----------------------^--+  +----------------^--------+   +--+----------------------+ 
         |       |      ^
         |       |      | 
         |       |      | 
         |     +-------+---------+    | 
         +-------------------+ HA PROXY  +-------------+ 
              +-----^--^--------+ 
               | | 
               | | 
               + + 
+0

http://stackoverflow.com/a/36283565/504554 – hardillb 2016-04-02 19:34:39

+0

@hardillb我應該刪除此答案還是需要更清楚的來源歸因? – Kiran 2016-04-02 19:37:48

+0

本來很高興能說出想法的來源 – hardillb 2016-04-02 19:38:31

1

有2(這個時候寫的)主要的開源支持大規模MQTT部署和集羣 項目

VerneMQ和EMQ都用Erlang編寫的,這是非常適合分佈式消息,所有的複製都是建立在(Erlang)語言的工具集中的。

VerneMQ有商業企業支持,而EMQ計劃在不久的將來,這兩個項目都有大公司支持他們作爲贊助商。

您也可以看看HiveMQ這是塊最古老的孩子,卻沒有祈禱,許可證不能使用。

0

你可以看看Bevywise IoT Platform。這是一個商業產品。這可以選擇儘可能多的經紀人來擴大規模。這支持MQTT和MQTT-SN協議。

聲明:我爲Bevywise Networks工作。