BifroMQ分布式?MQTT 消息中間件
BifroMQ 是基于 Java 實(shí)現(xiàn)的高性能分布式 MQTT Broker 消息中間件,無縫集成了原生的多租戶支持。它旨在支持構(gòu)建大規(guī)模的物聯(lián)網(wǎng)設(shè)備連接和消息系統(tǒng)。
BifroMQ 采用了負(fù)載獨(dú)立子集群設(shè)計(jì),可以高效處理連接會(huì)話、消息轉(zhuǎn)發(fā)和消息存儲(chǔ)等工作負(fù)載。各子集群具備高可用性,支持橫向擴(kuò)展,并能靈活應(yīng)對(duì)多租戶場(chǎng)景。
同時(shí),BifroMQ 內(nèi)置了優(yōu)化的分布式存儲(chǔ)引擎,無需依賴第三方存儲(chǔ)中間件,保證了性能穩(wěn)定。
此外,BifroMQ 支持單機(jī)模式Standalone、標(biāo)準(zhǔn)集群Standard Cluster、獨(dú)立工作負(fù)載集群Independent Workload Cluster三種部署模式,并允許通過插件進(jìn)行定制,以滿足不同業(yè)務(wù)需求。
性能方面,在標(biāo)準(zhǔn)測(cè)試環(huán)境中,處理大量并發(fā)消息發(fā)布時(shí),BifroMQ 保持了極低的消息時(shí)延及較低的 CPU 使用率。
特性
- 完全支持 MQTT 3.1/3.1.1的特性,包括 TCP, TLS, WS, WSS,即將支持 MQTT 5
- 原生支持多租戶資源共享和工作負(fù)載隔離
- 內(nèi)置存儲(chǔ)引擎,針對(duì)關(guān)鍵負(fù)載定向優(yōu)化,無第三方中間件依賴。
- 擴(kuò)展機(jī)制支持:
- 認(rèn)證/授權(quán) (Authentication/Authorization)
- 運(yùn)行時(shí)設(shè)置 (Runtime Setting)
- 橋接 (Bridging)
- 事件 (Event)
- 系統(tǒng)/租戶級(jí)別的監(jiān)控 (System/Tenant-level Monitoring)
開始使用
預(yù)備條件
- JDK 17+
- Maven 3.5.0+
從源碼構(gòu)建
將倉庫克隆到您的本地工作空間:
cd <YOUR_WORKSPACE>
git clone https://github.com/baidu/bifromq bifromq
進(jìn)入項(xiàng)目文件夾,執(zhí)行以下命令來構(gòu)建整個(gè)項(xiàng)目:
cd bifromq
mvn wrapper:wrapper
./mvnw -U clean package
構(gòu)建輸出包括位于/build/build-bifromq-starters/target/下:
bifromq-<VERSION>-windows-standalone.zipbifromq-<VERSION>-standalone.tar.gz
運(yùn)行測(cè)試
在項(xiàng)目根文件夾執(zhí)行以下命令來運(yùn)行所有測(cè)試用例,包括單元測(cè)試和集成測(cè)試。 注意:測(cè)試可能需要一些時(shí)間來完成
mvn test
部署
BifroMQ 有三種部署模式:單機(jī)模式(Standalone),標(biāo)準(zhǔn)集群(Standard Cluster),獨(dú)立工作負(fù)載集群(Independent Workload Cluster)
單機(jī)模式
單機(jī)部署模式非常適合開發(fā)階段,或不需要即時(shí)恢復(fù)的生產(chǎn)環(huán)境。
要啟動(dòng)一個(gè)單機(jī)的 bifromq 服務(wù)器,將 bifromq-xxx-standalone.tar.gz 解壓到一個(gè)目錄。目錄結(jié)構(gòu)如下:
|-bin
|-conf
|-lib
|-plugins
在bin目錄下執(zhí)行以下命令:
啟動(dòng)服務(wù)器:
./standalone.sh start // 服務(wù)進(jìn)程會(huì)在后臺(tái)運(yùn)行
停止服務(wù)器:
./standalone.sh stop
配置文件 'standalone.yml' 位于 conf 目錄中。
大部分設(shè)置可以通過名稱理解其含義。默認(rèn)情況下,單機(jī)服務(wù)器將在data目錄中保存持久數(shù)據(jù)。
標(biāo)準(zhǔn)集群(即將公開)
標(biāo)準(zhǔn)集群部署模式適用于需要可靠性和可擴(kuò)展性的小型到中型生產(chǎn)環(huán)境。
它由幾個(gè)完全功能的節(jié)點(diǎn)組成,共同作為一個(gè)邏輯 MQTT Broker 實(shí)例,確保高可用性。
你也可以通過添加更多的節(jié)點(diǎn)來擴(kuò)大并發(fā) MQTT 連接的工作負(fù)載,而在這種模式下,某些類型的消息相關(guān)的工作負(fù)載并不是水平可擴(kuò)展的。
獨(dú)立工作負(fù)載集群
獨(dú)立工作負(fù)載集群部署模式旨在構(gòu)建大規(guī)模的,多租戶的 Serverless 集群。在這種模式下,集群由幾個(gè)專門的子集群組成,每個(gè)子集群都專注于一個(gè)特定的'獨(dú)立類型'的工作負(fù)載。這些子集群共同協(xié)作形成一個(gè)邏輯的 MQTT Broker 實(shí)例。這是最復(fù)雜的部署模式,需要額外的非開源協(xié)作組件。如需商業(yè)支持,請(qǐng)隨時(shí)與我們聯(lián)系。
