什么是RocketMQ?
RocketMQ核心概念
RocketMQ 主要有以下幾個(gè)核心概念:
1. 消息(Message):
指要發(fā)送或接收的數(shù)據(jù)。消息由主體(Topic)和標(biāo)簽(Tag)組成,Topic 表示消息的分類,Tag 表示消息的子分類。
2. 生產(chǎn)者(Producer):
指生產(chǎn)消息并發(fā)送給 Broker 的應(yīng)用程序。
3. 消費(fèi)者(Consumer):
指從 Broker 消費(fèi)消息的應(yīng)用程序。
4. Broker:
指存儲(chǔ)、轉(zhuǎn)發(fā)和管理消息的核心組件。Broker 可以垂直擴(kuò)展和水平擴(kuò)展,支持主從同步復(fù)制和異步復(fù)制兩種方式。
5. 群組(Group):
指一組具有相同消費(fèi)邏輯的消費(fèi)者,這些消費(fèi)者共同消費(fèi)同一個(gè)主題下的消息。在同一個(gè)群組內(nèi),消費(fèi)者之間是競(jìng)爭(zhēng)關(guān)系;在不同群組之間,消費(fèi)者之間是協(xié)作關(guān)系。
RocketMQ 消息發(fā)送和消費(fèi)流程
RocketMQ 的消息發(fā)送流程如下:
1. 生產(chǎn)者將消息發(fā)送到 Broker。
2. Broker 將消息持久化到磁盤,并返回發(fā)送結(jié)果給生產(chǎn)者。
3. 生產(chǎn)者根據(jù)返回結(jié)果決定是否重試。
4. 消費(fèi)者從 Broker 拉取消息。
5. 消費(fèi)者將消費(fèi)結(jié)果提交給 Broker。
6. Broker 根據(jù)提交結(jié)果決定是否重試。
RocketMQ 的消息消費(fèi)流程如下:
1. 消費(fèi)者訂閱主題(Topic)和標(biāo)簽(Tag)。
2. 生產(chǎn)者將消息發(fā)送到 Broker。
3. 消費(fèi)者從 Broker 拉取消息。
4. 消費(fèi)者將消息處理完畢后,將消費(fèi)結(jié)果提交給 Broker。
5. Broker 根據(jù)提交結(jié)果決定是否重試。
RocketMQ 還支持分布式事務(wù),可以在多個(gè) Broker 之間進(jìn)行事務(wù)提交和回滾。分布式事務(wù)包括兩個(gè)階段:本地事務(wù)執(zhí)行和消息發(fā)送確認(rèn),只有這兩個(gè)階段都成功才算事務(wù)成功
分布式消息中間件RocketMQ
RocketMQ 的架構(gòu)設(shè)計(jì)基于生產(chǎn)者、消費(fèi)者和 broker 三個(gè)主要組件。生產(chǎn)者是一個(gè)把消息發(fā)送到消息隊(duì)列中的應(yīng)用程序,消費(fèi)者則是從消息隊(duì)列中獲取消息的應(yīng)用程序。broker 是 RocketMQ 的核心組件,它扮演著一個(gè)中介的角色,用于接收、存儲(chǔ)和傳遞消息。
RocketMQ 的設(shè)計(jì)具有很強(qiáng)的可伸縮性和可靠性,因此能夠在大規(guī)模分布式系統(tǒng)中應(yīng)用。
RocketMQ 的架構(gòu)采用了主從復(fù)制的方式,即每個(gè) broker 都有一個(gè)主節(jié)點(diǎn)和多個(gè)從節(jié)點(diǎn)。主節(jié)點(diǎn)負(fù)責(zé)寫入消息,從節(jié)點(diǎn)則負(fù)責(zé)備份數(shù)據(jù)。當(dāng)主節(jié)點(diǎn)出現(xiàn)問題時(shí),從節(jié)點(diǎn)可以接替其工作。
RocketMQ 的消息分發(fā)是通過 Topic 和 Tag 兩個(gè)概念來實(shí)現(xiàn)的。Topic 是一個(gè)消息的邏輯概念,每個(gè)消息都屬于某一個(gè) Topic,而每個(gè) Topic 又可以包含多個(gè) Tag,Tag 用于進(jìn)一步描述消息的類型和屬性。在 RocketMQ 中,消息的分發(fā)是根據(jù) Topic 和 Tag 來實(shí)現(xiàn)的,因此可以靈活地按照不同的維度對(duì)消息進(jìn)行分發(fā)和管理。
RocketMQ 還提供了多種消息傳輸協(xié)議,包括 TCP、HTTP、SSL 和 MQTT 等,這些協(xié)議可以滿足不同場(chǎng)景下的消息傳輸需求。同時(shí),RocketMQ 還提供了多種客戶端 API,包括 Java、C++、Python、Go 等,可以方便地集成到不同的應(yīng)用程序中。
RocketMQ 是一款功能強(qiáng)大、性能優(yōu)異的分布式消息中間件,可以應(yīng)用于各種分布式場(chǎng)景,有著廣泛的應(yīng)用前景。
分布式消息RocketMQ相關(guān)視頻
分布式消息服務(wù)
03:00