摘要:發送消息負載均衡發送消息通過輪詢隊列的方式發送,每個隊列接收平均的消息量。訂閱消息負載均衡假設有個隊列,個,那舉第一個消費個隊列,第二消費個隊列。
Producer生產者
ProducerGroup
用來表示一個發送消息應用,一個 Producer Group 下包含多個 Producer 實例,可以是多臺機器,也可以是一臺機器的多個進程,或者一個進程的多個 Producer 對象。一個 Producer Group 可以發送多個 Topic 消息。
Producer Group 作用如下:
(1)標識一類 Producer
(2)可以通過運維工具查詢返個収送消息應用下有多個 Producer 實例
(3)發送分布式事務消息時,如果 Producer 中途意外宕機,Broker會主動回調Producer Group內的任意一臺機器來確認事務狀態。
Producer 連接 NameServer
Producer與NameServer集群中的其中一個節點(隨機選擇)建立長連接,定期從NameServer取到Topic路由信息(Broket注冊的IP地址),并向提供Topic服務的Master建立長連接,并且定時(默認30秒)向Master 發送心跳。
Producer 發送消息負載均衡
發送消息通過輪詢隊列的方式發送,每個隊列接收平均的消息量。通過增加機器,可以水平擴展隊列容量。另外也可以自定義方式選擇發往哪個隊列。注:另外多個隊列可以部署在一臺機器上,也可以分別部署在多臺不同的機器上。
Consumer消費者
Consumer Group
用來表示一個消費消息應用,一個Consumer Group下包含多個Consumer實例,可以是多臺機器,也可以是多個進程,或者是一個進程的多個Consumer對象。一個Consumer Group下的多個Consumer以均攤 方式消費消息,如果設置為廣播方式,那么這個Consumer Group下的每個實例都消費全量數據。
Consumer 連接 NameServer
Consumer與NameServer集群中的其中一個節點(隨機選擇)建立長連接,定期從NameServer取到Topic 路由信息,并向提供Topic服務的Master、Slave建立長連接,并定時向Master、Slave發送心跳。Consumer 既可以從 Master 訂閱消息,也可以從 Slave 訂閱消息,訂閱規則由 Broker 配置決定。
Consumer 訂閱消息負載均衡
假設有5個隊列,2 個Consumer,那舉第一個Consumer消費3個隊列,第二Consumer 消費2個隊列。這樣即可達到平均消費的目的,可以水平擴展Consumer來提高消費能力。但是Consumer 數量要小于等于隊列數量,如果Consumer超過隊列數量,那舉多余的Consumer將不能消費消息。
消費并行度
修改消費并行度方法:
(1)同一個Consumer Group下,通過增加Consumer實例數量來提高并行度,超過訂閱隊列數的Consumer實例無效。可以通過加機器,或者在已有機器啟動多個進程的方式。
(2)提高單個 Consumer 的消費并行線程,通過修改設置 consumeThreadMin最小并發線程數和consumeThreadMax最大并發線程數來提高消費能力。
(3)通過設置Consumer的consumeMessageBatchMaxSize這個參數,默認是1,即一次只消費一條消息,例如設置為N,那么每次消費的消息數小于等于N。這樣即可大幅度提高消費的吞吐量。
Tag消息過濾
最后講解一些Tag,Tag是用于消息分類時使用的!但是只能做簡單的過濾。那么能不能消費端A訂閱這個Tag1就能確定Tag1消息發送到消費端A呢?答案是不能!根據前面的Consumer負載均衡策略,一個消息不能確定被發送到具體的某個消費者,所以只能做簡單的過濾數據分類。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69707.html
摘要:利用的高級特性特性是一種負載均衡的機制。在一個消息被分發到之前,首先檢查消息屬性。屬性為某個值的消息單個消息或消息集合在描述,和的對應關系,以及負載均衡策略時。同樣做到了保證消息的順序情況下,均衡消費的消費消息。 通常mq可以保證先到隊列的消息按照順序分發給消費者消費來保證順序,但是一個隊列有多個消費者消費的時候,那將失去這個保證,因為這些消息被多個線程并發的消費。但是有的時候消息按照...
摘要:主流消息中間件介紹是由出品,是一個完全支持和規范的實現。主流消息中間件介紹是阿里開源的消息中間件,目前也已經孵化為頂級項目。 showImg(https://img-blog.csdnimg.cn/20190509221741422.gif);showImg(https://img-blog.csdnimg.cn/20190718204938932.png?x-oss-process=...
摘要:微信公眾號后端進階,專注后端技術分享框架分布式中間件服務治理等等。 微信公眾號「后端進階」,專注后端技術分享:Java、Golang、WEB框架、分布式中間件、服務治理等等。 前段時間有個朋友向我提了一個問題,他說在搭建 RocketMQ 集群過程中遇到了關于消費訂閱的問題,具體問題如下: showImg(https://segmentfault.com/img/remote/1460...
摘要:和之間的關系通過來綁定,來定義,即相同的,等于表示節點,非表示節點。所有的節點與集群的所有節點保持長連接,定時注冊信息到所有的。對磁盤的訪問串行化,避免磁盤竟爭,不會因為隊列增加導致增高。要保證與完全的一致,增加了編程的復雜度。 Apache RocketMQ?是一個開源的分布式消息和流數據平臺。 1、既然是消息系統,最核心的功能就是要提供消息的發布與訂閱功能,最簡單的概念模型如下: ...
閱讀 2829·2021-11-22 15:11
閱讀 3547·2021-09-28 09:43
閱讀 2895·2019-08-30 13:05
閱讀 3436·2019-08-30 11:18
閱讀 1453·2019-08-29 16:34
閱讀 1308·2019-08-29 13:53
閱讀 2914·2019-08-29 11:03
閱讀 1666·2019-08-29 10:57