国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

洞察基的個人空間 http://www.qingdxww.cn/space-uid-170118.html [收藏] [復制] [RSS]

博客

負載均衡 - MQTT Broker 集群詳解(一)

已有 458 次閱讀2022-7-26 15:22 | MQTT, MQTT 服務(wù)器, 物聯(lián)網(wǎng)

MQTT 協(xié)議在物聯(lián)網(wǎng),小型設(shè)備場景,移動應(yīng)用等方面已經(jīng)有了廣泛的應(yīng)用,并逐漸成為了物聯(lián)網(wǎng)通訊的標準。本文重點介紹了組建 MQTT Broker 集群的挑戰(zhàn)及負載均衡在 MQTT 集群中所起的作用。

MQTT 協(xié)議

與大家熟悉的 HTTP 協(xié)議類似,MQTT 協(xié)議同樣基于 TCP/TLS 之上,屬于應(yīng)用層協(xié)議(它也可以基于 HTTP 協(xié)議之上工作,本文暫不涉及這部分內(nèi)容)。

MQTT 標準委員會對 MQTT 協(xié)議的釋義如下:

MQTT 是用于物聯(lián)網(wǎng) (IoT) 的 OASIS 標準消息傳遞協(xié)議。它是一種非常輕量級的消息傳輸協(xié)議,采用了發(fā)布/訂閱的機制,非常適合連接遠程設(shè)備,無論是代碼占用空間還是網(wǎng)絡(luò)帶寬的占用都很小。如今,MQTT 已被廣泛用于汽車、工業(yè)制造、電信、石油和天然氣等各個行業(yè)。

MQTT 客戶端和 HTTP 客戶端也很相似。它與服務(wù)器端建立一個 TCP 連接,通過該連接傳輸數(shù)據(jù)。不同的是,HTTP 采用的是請求/響應(yīng)模型,而 MQTT 采用的是發(fā)布/訂閱模型。

舉個例子:客廳里安裝的溫度傳感器,會間斷性的把室內(nèi)溫度數(shù)值上傳到 MQTT 服務(wù)器上。而另一個智能家居設(shè)備訂閱了這個溫度傳感器發(fā)布消息的頻道,就可以獲得室內(nèi)的溫度數(shù)據(jù),并根據(jù)實際室溫采取一些智能應(yīng)對措施,比如當室內(nèi)溫度超過 32°C 時就打開空調(diào)。

可拓展性挑戰(zhàn)

MQTT 協(xié)議聽起來似乎離我們很遙遠,其實它早已滲透到了我們的日常生活中。一般情況下,單個 MQTT 節(jié)點就可以滿足單個家庭的智能家居設(shè)備連接需求,用戶甚至可以在樹莓派上運行一個 EMQX Edge (運行在邊緣端的 MQTT 服務(wù)器)。而運行在云端的一個 EMQX 節(jié)點可以支撐高達 200 萬的連接數(shù),輕松滿足普通智能家居場景需求。

但如果是全國的千百萬輛汽車要聯(lián)網(wǎng),或者是上百萬盞路燈要傳遞數(shù)據(jù)之類的場景,那么巨大的設(shè)備數(shù)(MQTT 客戶端)和數(shù)據(jù)吞吐量,就遠遠超出了單個 MQTT 節(jié)點所能承受的壓力,需要組建 MQTT 服務(wù)器集群。

在組建集群的同時,也面臨著一系列的技術(shù)挑戰(zhàn):

  1. 提供服務(wù)地址:如何讓客戶端知道該連接哪個地址?

  2. 不同節(jié)點如何接管 MQTT 訂閱者的會話,比如當一個客戶端從一臺服務(wù)器斷連后,要如何在另一臺服務(wù)器恢復連接?

  3. 集群中各個節(jié)點上的路由表如何保持一致性?

通過在 MQTT 集群前面引入一個負載均衡,可以幫助我們輕松解決問題 1 和 2。

MQTT 負載均衡

MQTT 負載均衡

MQTT 負載均衡

為了應(yīng)對上述問題,負載均衡需要能夠根據(jù)配置的均衡策略來幫助客戶端決定連接到哪個節(jié)點。 MQTT 集群負載均衡的主要功能有:

  • 對外提供集群服務(wù)地址

    客戶端只需要關(guān)心負載均衡的地址,而且不需要知道集群內(nèi)各個節(jié)點的地址。這大大提升了服務(wù)器遷移和伸縮的靈活性。

  • TLS 終結(jié)

    許多 MQTT 的用戶選擇在負載均衡這一層來終結(jié) TLS,這樣可以使 MQTT 服務(wù)器的資源被充分用于消息的處理。

  • 平衡集群中各個節(jié)點的負載

    負載均衡服務(wù)通?梢耘渲貌煌木獠呗裕纾弘S機分配、輪詢(有些輪詢策略可以調(diào)節(jié)節(jié)點權(quán)重),還有比較有意思的粘性分配。

由于 MQTT 是基于 TCP/IP 之上的協(xié)議,因此可以在傳輸層進行負載均衡。而在傳輸層負載均衡之外,MQTT 能使用的負載均衡產(chǎn)品 HAProxy 2.4 和 Nginx Plus 還提供了應(yīng)用層(MQTT 層)的負載均衡解決方案。

Nginx Plus 是在 Nginx(一個開源的 Web 服務(wù)器,適用于高流量網(wǎng)站的反向代理)基礎(chǔ)上構(gòu)建的應(yīng)用程序交付平臺。Nginx Plus 的這篇文章作了較為詳細的描述。

同樣優(yōu)秀的,還有 HAProxy。它提供高可用性負載均衡,以及基于 TCP、HTTP 和 MQTT 的應(yīng)用程序代理。到目前為止(2021 年 8月),HAProxy 2.4 是唯一一款可以提供 MQTT 層負載均衡的免費產(chǎn)品。在他們的 release note 中,對 MQTT 負載均衡的功能作了簡單的介紹。

在 “MQTT Broker 集群詳解”系列的下一篇文章中,我們將對 HAProxy 2.4 + EMQX 4.3 的集成方案進行詳細展開,敬請期待。

本系列中的其它文章

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
主站蜘蛛池模板: 99国内精品 | 野外性战 欧美 | 三级视频网站在线观看视频 | 久久国产免费观看精品 | 日韩欧美亚 | 国产精品动漫视频网站 | 欧美在线视频网 | 青青青手机在线观看 | 成视频年人黄网站免费视频 | 97麻豆精品国产自产在线观看 | 亚洲第一免费网站 | 五月综合激情网 | 久99视频| 成人国产精品久久久免费 | 欧美青青草 | 色中色综合 | 国产专区自拍 | 日本一区二区三区久久久久 | 久草视频在线首页 | 青草国内精品视频在线观看 | 韩国福利一区二区三区高清视频 | 国产精品视频免费视频 | 亚洲最大福利 | 原千岁超溺爱中文字幕 | 亚洲女同在线观看 | 花季传媒v3.051| 99精品一区二区免费视频 | www.欧美在线 | 2021时光音乐会在线观看 | 国产精品不卡 | 天堂a免费视频在线观看 | 免费在线观看日本 | 天天夜夜狠狠一区二区三区 | 欧美视频一区二区三区 | 四虎永久地址4hu紧急入口 | 一个人hd免费完整高清视频 | 黄色片网站免费在线观看 | 99久久国产综合精品2020 | 精品999久久久久久中文字幕 | 91久久精品国产91久久性色也 | 亚欧三级 |