国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RocketMQ-(9-1)-MQTT-EventBridge概述

這篇具有很好參考價(jià)值的文章主要介紹了RocketMQ-(9-1)-MQTT-EventBridge概述。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

RocketMQ MQTT 概覽

傳統(tǒng)的消息隊(duì)列MQ主要應(yīng)用于服務(wù)(端)之間的消息通信,比如電商領(lǐng)域的交易消息、支付消息、物流消息等等。然而在消息這個(gè)大類下,還有一個(gè)非常重要且常見(jiàn)的消息領(lǐng)域,即IoT類終端設(shè)備消息。近些年,我們看到隨著智能家居、工業(yè)互聯(lián)而興起的面向IoT設(shè)備類的消息正在呈爆炸式增長(zhǎng),而且已經(jīng)發(fā)展十余年的移動(dòng)互聯(lián)網(wǎng)的手機(jī)APP端消息仍然是數(shù)量級(jí)龐大。面向終端設(shè)備的消息數(shù)量級(jí)比傳統(tǒng)服務(wù)端的消息要大很多量級(jí)并仍然在快速增長(zhǎng)。

如果可以有一個(gè)統(tǒng)一的消息系統(tǒng)(產(chǎn)品)來(lái)提供多場(chǎng)景計(jì)算(如stream、event)、多場(chǎng)景(IoT、APP)接入,其實(shí)是非常有價(jià)值的,因?yàn)橄⒁彩且环N重要數(shù)據(jù),數(shù)據(jù)如果只存在一個(gè)系統(tǒng)內(nèi),可以最大地降低存儲(chǔ)成本,同時(shí)可以有效地避免數(shù)據(jù)因在不同系統(tǒng)間同步帶來(lái)的一致性難題和挑戰(zhàn)。

RocketMQ-(9-1)-MQTT-EventBridge概述,rocketmq

基于此,我們引入了RocketMQ-MQTT這個(gè)擴(kuò)展項(xiàng)目來(lái)實(shí)現(xiàn)RocketMQ統(tǒng)一接入IoT設(shè)備和服務(wù)端的消息,提供一體化消息存儲(chǔ)和互通能力。

MQTT協(xié)議?

在IoT終端場(chǎng)景,目前業(yè)界廣泛使用的是MQTT協(xié)議,是起源于物聯(lián)網(wǎng)IoT場(chǎng)景,OASIS聯(lián)盟定義的標(biāo)準(zhǔn)的開放式協(xié)議。因?yàn)镮oT設(shè)備種類繁多,運(yùn)行環(huán)境各異,一個(gè)標(biāo)準(zhǔn)的接入?yún)f(xié)議尤為關(guān)鍵。

MQTT協(xié)議定義的是一個(gè)Pub/Sub的通信模型,這個(gè)與RocketMQ是類似的,不過(guò)其在訂閱方式上比較靈活,可以支持多級(jí)Topic訂閱(如 “/t/t1/t2”),甚至可以支持通配符訂閱(如 “/t/t1/+”)。

模型介紹?

隊(duì)列存儲(chǔ)模型?

RocketMQ-(9-1)-MQTT-EventBridge概述,rocketmq

我們?cè)O(shè)計(jì)了一種多維度分發(fā)的Topic隊(duì)列模型,如上圖所示,消息可以來(lái)自各個(gè)接入場(chǎng)景(如服務(wù)端的MQ/AMQP、客戶端的MQTT),但只會(huì)寫一份存到commitlog里面,然后分發(fā)出多個(gè)需求場(chǎng)景的隊(duì)列索引(ConsumerQueue),如服務(wù)端場(chǎng)景(MQ/AMQP)可以按照一級(jí)Topic隊(duì)列進(jìn)行傳統(tǒng)的服務(wù)端消費(fèi),客戶端MQTT場(chǎng)景可以按照MQTT多級(jí)Topic以及通配符訂閱進(jìn)行消費(fèi)消息。

這樣的一個(gè)隊(duì)列模型就可以同時(shí)支持服務(wù)端和終端場(chǎng)景的接入和消息收發(fā),達(dá)到一體化的目標(biāo)。

推拉模型?

RocketMQ-(9-1)-MQTT-EventBridge概述,rocketmq

上圖展示的是一個(gè)推拉模型,圖中的P節(jié)點(diǎn)是一個(gè)協(xié)議網(wǎng)關(guān)或broker插件,終端設(shè)備通過(guò)MQTT協(xié)議連到這個(gè)網(wǎng)關(guān)節(jié)點(diǎn)。消息可以來(lái)自多種場(chǎng)景(MQ/AMQP/MQTT)發(fā)送過(guò)來(lái),存到Topic隊(duì)列后會(huì)有一個(gè)notify邏輯模塊來(lái)實(shí)時(shí)感知這個(gè)新消息到達(dá),然后會(huì)生成消息事件(就是消息的Topic名稱),將該事件推送至網(wǎng)關(guān)節(jié)點(diǎn),網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)其連上的終端設(shè)備訂閱情況進(jìn)行內(nèi)部匹配,找到哪些終端設(shè)備能匹配上,然后會(huì)觸發(fā)pull請(qǐng)求去存儲(chǔ)層讀取消息再推送至終端設(shè)備。

架構(gòu)概覽?

RocketMQ-(9-1)-MQTT-EventBridge概述,rocketmq

?我們的目標(biāo)是期望基于RocketMQ實(shí)現(xiàn)一體化且自閉環(huán),但不希望Broker被侵入更多場(chǎng)景邏輯,我們抽象了一個(gè)協(xié)議計(jì)算層,這個(gè)計(jì)算層可以是一個(gè)網(wǎng)關(guān),也可以是一個(gè)broker插件。Broker專注解決Queue的事情以及為了滿足上面的計(jì)算需求做一些Queue存儲(chǔ)的適配或改造。協(xié)議計(jì)算層負(fù)責(zé)協(xié)議接入,并且要可插拔部署。

RocketMQ MQTT 快速開始

系統(tǒng)要求?

  • 64位操作系統(tǒng),推薦 Linux/Unix/macOS
  • 64位 JDK 1.8+

部署說(shuō)明?

由于RocketMQ-MQTT項(xiàng)目依賴RocketMQ底層的多隊(duì)列分發(fā),RocketMQ從4.9.3版本開始支持這一特性,因此您需要確認(rèn)RocketMQ的版本升級(jí)到4.9.3或更高版本,并且確保以下配置項(xiàng)已開啟:

enableLmq = true 
enableMultiDispatch = true

RocketMQ-MQTT的部署參考項(xiàng)目說(shuō)明,下載工程release版本或直接從源碼構(gòu)建。

git clone https://github.com/apache/rocketmq-mqtt
cd rocketmq-mqtt 
mvn -Prelease-all -DskipTests clean install -U 
cd distribution/target/ 
cd bin
sh mqtt.sh start

配置說(shuō)明?

username=xxx    // 權(quán)限驗(yàn)證賬戶配置
secretKey=xxx    // 權(quán)限驗(yàn)證賬戶配置
NAMESRV_ADDR=xxx  //namesrv接入點(diǎn)
eventNotifyRetryTopic=xx   //notify重試topic,提前創(chuàng)建
clientRetryTopic=xx  //客戶端消息重試topic,提前創(chuàng)建

其他啟動(dòng)配置參考項(xiàng)目README.md

示例說(shuō)明?

RocketMQ-MQTT項(xiàng)目工程代碼里面提供了基本的example代碼,詳見(jiàn)代碼示例。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-686024.html

MqttConsumer.java  // MQTT客戶端啟動(dòng)訂閱消息
MqttProducer.java   // MQTT客戶端啟動(dòng)發(fā)布消息
RocketMQConsumer.java //RocketMQ客戶端啟動(dòng)訂閱消息
RocketMQProducer.java  // RocketMQ客戶端啟動(dòng)發(fā)布消息

到了這里,關(guān)于RocketMQ-(9-1)-MQTT-EventBridge概述的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • mq 消息隊(duì)列 mqtt emqx ActiveMQ RabbitMQ RocketMQ

    十幾年前,淘寶的notify,借鑒ActiveMQ。京東的ActiveMQ集群幾百臺(tái),后面改成JMQ。 Linkedin的kafka,因?yàn)槭莝cala,國(guó)內(nèi)很多人不熟。淘寶的人把kafka用java寫了一遍,取名metaq,后來(lái)再改名RocketMQ。 總的來(lái)說(shuō),三大原因,語(yǔ)言、潮流、生態(tài)。 MQ這種東西,當(dāng)你的消息量不大的時(shí)候,用啥

    2024年02月12日
    瀏覽(17)
  • 【面試需了解之消息隊(duì)列】RocketMQ、kafka、RabbitMQ概述

    消息隊(duì)列說(shuō)明:RocketMQ、kafka、RabbitMQ概述及關(guān)鍵概念 概述 消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合,異步消息,流量控制等問(wèn)題。實(shí)現(xiàn)高性能、高可用、可伸縮和最終一致性架構(gòu),是大型分布式系統(tǒng)不可缺少的中間件 作用 異構(gòu)系統(tǒng)消息傳遞:上游系統(tǒng)

    2024年02月10日
    瀏覽(62)
  • MQ概述及RocketMQ在Linux下的安裝和啟動(dòng)

    MQ概述及RocketMQ在Linux下的安裝和啟動(dòng)

    MQ全稱 Message Queue(消息隊(duì)列),是在消息的傳輸過(guò)程中保存消息的容器。多用于分布式系統(tǒng)之間進(jìn)行通信。 從網(wǎng)上可以查看到很多的關(guān)于MQ用途的敘述,但總結(jié)起來(lái)其實(shí)就以下三點(diǎn): 1.限流削峰 MQ可以將系統(tǒng)的超量請(qǐng)求暫存其中,以便系統(tǒng)后期可以慢慢進(jìn)行處理,從而避免了

    2024年02月09日
    瀏覽(20)
  • 【RocketMQ】SpringBoot集成RocketMQ

    SpringBoot集成RocketMQ 首先依舊是引入依賴 然后就可以編寫發(fā)送不同類型消息的代碼了

    2024年02月12日
    瀏覽(21)
  • 【RocketMQ】005-Docker 部署 RocketMQ

    【RocketMQ】005-Docker 部署 RocketMQ

    MQ 鏡像 可視化平臺(tái)鏡像 創(chuàng)建 nameserver 掛載目錄 創(chuàng)建 broker 目錄 創(chuàng)建 broker 配置文件目錄 目錄:/home/zibo/docker/rocketmq/data/conf vim broker.conf 啟動(dòng) nameserver docker run : 這是Docker命令,用于創(chuàng)建和管理Docker容器。 -d : 這是一個(gè)選項(xiàng),指示Docker在后臺(tái)運(yùn)行容器。 --restart=always : 這是一個(gè)

    2024年02月16日
    瀏覽(28)
  • 【RocketMQ】CentOS8安裝RocketMQ

    【RocketMQ】CentOS8安裝RocketMQ

    檢查jdk環(huán)境 RocketMQ是基于java開發(fā)的,安裝之前請(qǐng)先查看是否有jdk環(huán)境 如果沒(méi)有請(qǐng)去官網(wǎng)(https://www.oracle.com/java/technologies/downloads/#java8)下載 下載RocketMQ安裝包 前往官網(wǎng)(https://rocketmq.apache.org/download)下載,選擇二進(jìn)制文件 在Linux環(huán)境中安裝 把下載好的文件傳入Linux系統(tǒng)中,

    2024年02月12日
    瀏覽(24)
  • 【RocketMQ】RocketMQ標(biāo)簽、過(guò)濾及消息重復(fù)消費(fèi)

    【RocketMQ】RocketMQ標(biāo)簽、過(guò)濾及消息重復(fù)消費(fèi)

    參考文檔: 官方文檔 Topic 與 Tag 都是業(yè)務(wù)上用來(lái)歸類的標(biāo)識(shí),區(qū)別在于 Topic 是一級(jí)分類,而 Tag 可以理解為是二級(jí)分類。使用 Tag 可以實(shí)現(xiàn)對(duì) Topic 中的消息進(jìn)行過(guò)濾。 注: Topic:消息主題,通過(guò) Topic 對(duì)不同的業(yè)務(wù)消息進(jìn)行分類。 Tag:消息標(biāo)簽,用來(lái)進(jìn)一步區(qū)分某個(gè) Topic 下

    2024年02月07日
    瀏覽(30)
  • RocketMQ 學(xué)習(xí)教程——(二)SpringBoot 集成 RocketMQ

    RocketMQ 學(xué)習(xí)教程——(二)SpringBoot 集成 RocketMQ

    在 Maven 倉(cāng)庫(kù)【https://mvnrepository.com/】中搜索 RocketMQ 依賴: 在 SpringBoot 項(xiàng)目的 Pom.xml 文件中添加對(duì)應(yīng) MQ 版本的依賴: YAML 配置 在 SpringBoot 項(xiàng)目的 yml 配置文件中添加以下配置: 創(chuàng)建監(jiān)聽(tīng)器 創(chuàng)建一個(gè) MQMsgListener 類用于監(jiān)聽(tīng) RocketMQ 的消息,類上標(biāo)注注解: @Component 、 @RocketMQMe

    2024年02月03日
    瀏覽(24)
  • 08-Linux安裝RocketMQ、RocketMQ控制臺(tái)

    下載RocketMQ ????????http://rocketmq.apache.org/release_notes/release-notes-4.4.0/ 環(huán)境要求 ????????Linux 64位操作系統(tǒng) ????????64bit JDK 1.8+ 1 上傳文件到Linux系統(tǒng)? ? ? ? ?/usr/local/rocketMQ 2 解壓到安裝目錄 ????????unzip rocketmq-all-4.4.0-bin-release.zip 3 解壓后的文件夾名為 rocketmq-4

    2024年02月05日
    瀏覽(24)
  • Springbootg整合RocketMQ ——使用 rocketmq-spring-boot-starter 來(lái)配置發(fā)送和消費(fèi) RocketMQ 消息

    ? ? ? ?本文解析將 RocketMQ Client 端集成為 spring-boot-starter 框架的開發(fā)細(xì)節(jié),然后通過(guò)一個(gè)簡(jiǎn)單的示例來(lái)一步一步的講解如何使用這個(gè) spring-boot-starter 工具包來(lái)配置,發(fā)送和消費(fèi) RocketMQ 消息。 添加maven依賴: 修改application.properties 注意: 請(qǐng)將上述示例配置中的 127.0.0.1:9876 替換

    2024年03月22日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包