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