RocketMQ 基本概念

名稱解析

Producer:消息生產者,負責產生消息,通常由業務系統負責產生消息。
Consumer:消息消費者,負責消費消息,通常是後臺系統負責異步消費。
Push Consumer:Consumer的一種,應用一般向Consumer對象註冊一個Listener接口,一旦收到消    息,Consumer對象立 刻回調Listener接口方法。
Pull Consumer:Consumer的一種,應用一般主動調用Consumer的拉消息方法從Broker拉消息,主動  權由應用控制。                                                                                                                     Producer Group:一類Producer的集合名稱,這類Producer一般發送一類消息,且發送邏輯一致。
Consumer Group:一類Consumer的集合名稱,這類Consumer一般消費一類消息,且消費邏輯一致。
Broker:消息中轉角色,負責存儲消息,轉發消息,通常也稱爲Server。在JMS規範中稱爲Provider。java

Message Queue
在RocketMQ中,全部消息隊列都是持久化,長度無限的數據結構,所謂長度無限是指隊列中的每一個存儲單元都是定長,訪問其中的存儲單元使用Offset來訪問,offset爲java long類型。也能夠認爲MessageQueue是一個長度無限的數組,offset就是下標。git

廣播消費,集羣消費
順序消息,普通順序消息,嚴格順序消息github

RocketMQ 定義

        一個隊列模型的消息中間件,具備高性能、高可靠、高實時、分佈式特色。
Producer、Consumer、隊列均可以分佈式。Producer 向一些隊列輪流發送消息,隊列集合稱爲Topic,Consumer 若是作廣播消費,則一個consumer實例消費這個Topic 對應的全部隊列,若是作集羣消費,則多個Consumer 實例平均消費這個topic 對應的隊列集合。可以保證嚴格的消息順序,提供豐富的消息拉取模式,高效的訂閱者水平擴展能力,實時的消息訂閱機制,億級消息堆積能力,較少的依賴。數組

物理部署圖

RocketMQ 網絡部署特色
     Name Server 是一個幾乎無狀態節點,可集羣部署,節點之間無任何信息同步。
     Broker 部署相對複雜,Broker 分爲Master 與Slave,一個Master 能夠對應多個Slave,可是一個Slave 只能對應一個Master,Master 與Slave 的對應關係經過指定相同的BrokerName,不一樣的BrokerId 來定義,BrokerId爲0 表示Master,非0 表示Slave。Master 也能夠部署多個。每一個Broker 與Name Server 集羣中的全部節點創建長鏈接,定時註冊Topic 信息到全部Name Server。
      Producer 與Name Server 集羣中的其中一個節點(隨機選擇)創建長鏈接,按期從Name Server 取Topic 路由信息,並向提供Topic 服務的Master 創建長鏈接,且定時向Master 發送心跳。Producer 徹底無狀態,可集羣部署。
       Consumer 與Name Server 集羣中的其中一個節點(隨機選擇)創建長鏈接,按期從Name Server 取Topic 路由信息,並向提供Topic 服務的Master、Slave 創建長鏈接,且定時向Master、Slave 發送心跳。Consumer既能夠從Master 訂閱消息,也能夠從Slave 訂閱消息,訂閱規則由Broker 配置決定。網絡

邏輯部署圖

Producer Group:用來表示一個發送消息應用,一個Producer Group 下包含多個Producer 實例,做用標識一類Producer,能夠經過運維工具查詢這個發送消息應用下有多個Producer實例,發送分佈式事務消息時,若是Producer中途意外宕機,Broker會主動回調Producer Group內的任意一臺機器來確認事務狀態。數據結構

Consumer Group:用來表示一個消費消息應用,一個Consumer Group下包含多個Consumer實例,一個Consumer Group下的多個Consumer以均攤方式消費消息,若是設置爲廣播方式,那麼這個Consumer Group下的每一個實例都消費全量數據。運維

參考:http://alibaba.github.io/RocketMQ-docs/document/design/RocketMQ_design.pdf異步

相關文章
相關標籤/搜索