RocketMQ 核心
RocketMQ 核心
譯自rocket官方文檔
Producer
一個producer 發送由業務系統產生的消息給 broker。RocketMQ提供了多種發送方式:同步,異步,one-way。
Producer 集群
是許多有同樣功能的producer。不同的producer連接同一個broker去提交或者回滾事務防止原始的producer在事務后崩潰。
Consumer
一個 Consumer 從broker拉取消息然后被應用消費。在用戶應用中,提供了兩種類型的Consumer:
-
PullConsumer
Pull consumer 主動得拉取消息從broker,一旦拉取到拉取批量消息,用戶應用初始化消費進程。 -
PushConsumer
Push consumer, 從另一個角度, 封裝了 message pulling(消息拉取), consuming progress(消費進程) and maintaining other work inside(維護其他), 留一個回調接口給用戶去實現,這個回調接口方法會在消息到達時被執行。
Consumer 集群
和producer 集群類似,是一群有相同功能的consumer的集合。
消費者集群是一個偉大的概念,在消息消費方面實現了負載均衡和容錯,非常簡單。
Topic
Topic是一個producer傳輸消息和consumer消費消息的范圍集合。Topic和P和C有非常緊密的關系。特別的是,一個Topic可能有0個,1個或者多個Producer來發送。當然,一個producer也可以發送消息給不同的topics。在Consumer方面,一個Topic可能被0個,1個,多個consumer訂閱。一個消費者集群,相似的來說,可以訂閱1個或者多個Topic只要保持集群訂閱一致。
Message
Message是傳送的信息。一個消息必須有topic,可以被你要發送的地方的作為地址解讀。一個Message還可能有一個可選的optional和額外的鍵值對,比如你可以設置一個業務KEY給你的Message并在broker服務器查找消息去定位開發中的問題。
Message Queue
Topic被分為一個或者多個子Topic。成為Message queen。
Tag
Tag,另一種子Topic,提供額外的靈活性給用戶,有了Tag,從同一業務模塊來的有不同目的的消息可以有相同的Topic和不同的Tag,tag會在幫助你的代碼整潔連貫,并且可以方便RocketMQ提供查詢系統。
Broker
Broker 是主要組成部分. 接受來自Producer的消息,存儲他們并準備去處理來自consumer的拉取請求。 他能存儲元數據有關消息,包括消費者集群,消費進程偏移和topic/queue信息。
Name Server
充當的是路由信息提供者,P/C的客戶端查找topics時找到對應的的broker集合。
消息類型
-
集群
-
廣播
Message Order
當使用DefaultMQPushConsumer時,你會有序的消費消息或者并發消費。
-
有序
有序消費消息意味著消息被按照producer發送一樣的次序消費對每一個消息隊列。如果你在處理強制全局次序的場景,需要確認你使用的topic是否只有一個消息隊列。 -
并發
當并發消費消息時,對每一個消費者客戶端,消費消息的最大并發只被線程池限制
總結
以上是生活随笔為你收集整理的RocketMQ 核心的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多路复用IO模型中的select和epo
- 下一篇: RocketMQ Broker的最佳实践