rocketMQ基本概念

## RocketMQ 消息模型主要由 Producer、Broker、Consumer 三部分組成,其中Producer 負責生產消息,Consumer 負責消費消息,Broker 負責存儲消息。
  Broker 在實際部署過程當中對應一臺服務器,每一個 Broker 能夠存儲多個Topic的消息,每一個Topic的消息也能夠分片存儲於不一樣的 Broker。
  Message Queue 用於存儲消息的物理地址,每一個Topic中的消息地址存儲於多個 Message Queue 中。ConsumerGroup 由多個Consumer 實例構成。
## 消息生產者(Producer)   負責生產消息,通常由業務系統負責生產消息。一個消息生產者會把業務應用系統裏產生的消息發送到broker服務器。RocketMQ提供多種發送方式,同步發送、異步發送、順序發送、單向發送。同步和異步方式均須要Broker返回確認信息,單向發送不須要。
## 消息消費者(Consumer)   負責消費消息,通常是後臺系統負責異步消費。一個消息消費者會從Broker服務器拉取消息、並將其提供給應用程序。從用戶應用的角度而言提供了兩種消費形式:拉取式消費、推進式消費。
## 代理服務器(Broker Server)   消息中轉角色,負責存儲消息、轉發消息。代理服務器在RocketMQ系統中負責接收從生產者發送來的消息並存儲、同時爲消費者的拉取請求做準備。代理服務器也存儲消息相關的元數據,包括消費者組、消費進度偏移和主題和隊列消息等。
## 名字服務(Name Server)   名稱服務充當路由消息的提供者。生產者或消費者可以經過名字服務查找各主題相應的Broker IP列表。多個Namesrv實例組成集羣,但相互獨立,沒有信息交換。
## 拉取式消費(Pull Consumer) Consumer消費的一種類型,應用一般主動調用Consumer的拉消息方法從Broker服務器拉消息、主動權由應用控制。一旦獲取了批量消息,應用就會啓動消費過程。
## 推進式消費(Push Consumer)  Consumer消費的一種類型,該模式下Broker收到數據後會主動推送給消費端,該消費模式通常實時性較高。
## 生產者組(Producer Group) 同一類Producer的集合,這類Producer發送同一類消息且發送邏輯一致。若是發送的是事物消息且原始生產者在發送以後崩潰,則Broker服務器會聯繫同一輩子產者組的其餘生產者實例以提交或回溯消費。
## 消費者組(Consumer Group)  同一類Consumer的集合,這類Consumer一般消費同一類消息且消費邏輯一致。消費者組使得在消息消費方面,實現負載均衡和容錯的目標變得很是容易。要注意的是,消費者組的消費者實例必須訂閱徹底相同的Topic。RocketMQ 支持兩種消息模式:集羣消費(Clustering)和廣播消費(Broadcasting)。
## 集羣消費(Clustering)   集羣消費模式下,相同Consumer Group的每一個Consumer實例平均分攤消息。
## 廣播消費(Broadcasting)   廣播消費模式下,相同Consumer Group的每一個Consumer實例都接收全量的消息。
## 普通順序消息(Normal Ordered Message)   普通順序消費模式下,消費者經過同一個消費隊列收到的消息是有順序的,不一樣消息隊列收到的消息則多是無順序的。
## 嚴格順序消息(Strictly Ordered Message)   嚴格順序消息模式下,消費者收到的全部消息均是有順序的。
## 主題(Topic)
    表示一類消息的集合,每一個主題包含若干條消息,每條消息只能屬於一個主題,是RocketMQ進行消息訂閱的基本單位。
## 消息(Message)
  消息系統所傳輸信息的物理載體,生產和消費數據的最小單位,每條消息必須屬於一個主題。RocketMQ中每一個消息擁有惟一的Message ID,且能夠攜帶具備業務標識的Key。系統提供了經過Message ID和Key查詢消息的功能。
## 標籤(Tag)
   爲消息設置的標誌,用於同一主題下區分不一樣類型的消息。來自同一業務單元的消息,能夠根據不一樣業務目的在同一主題下設置不一樣標籤。標籤可以有效地保持代碼的清晰度和連貫性,並優化RocketMQ提供的查詢系統。消費者能夠根據Tag實現對不一樣子主題的不一樣消費邏輯,實現更好的擴展性。
相關文章
相關標籤/搜索