【Message Queue - RabbitMQ】消費者分發制度

更新於 2023/05/23閱讀時間約 1 分鐘
假設我們每個Queue都只對應一個消費者,那麼就不會有分配問題,但如果今天我們有多個消費者的時候,這時候要怎麼分發?如何做到公平?

一、輪流分發

預設採輪流分發,假設有三個消費者同時消費,則如下圖,訊息平均分配給各個消費者處理。
這種分發方式並未考慮到Consumer的處理能力,假設Consumer1處理較慢,那麼被分配到訊息後勢必會堆積很多訊息在記憶體,如此一來會比較沒有效率一點,當有新的Consumer加入時那些堆積的訊息因為已經被分發到Consumer1了,所以新的Consumer也無法幫忙處理。

二、公平分發(依照處理能力)

上述的狀況下,只要Queue有訊息就立即往Consumer丟,此時如果能夠限制每個Consumer能夠處理的數量,那麼訊息就比較容易被依照處理能力分配,而RabbitMQ正好提供了這種Qos的配置,讓Consumer來告訴Server端自己一次能處理的量。
channel.basicQos($prefetchCount, $prefetchSize, $global)
  • $prefetchCount: 代表消費者一次能處理的量,在還沒回傳ack訊號前不會派發新的訊息。
  • $prefetchSize: 代表消費者一次能處理的訊息大小。
  • $global: true代表套用到整個connection, false則僅限於該channel,通常都配置為false。
延伸閱讀:
為什麼會看到廣告
avatar-img
116會員
261內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
早期的 nodejs 為了具有多線程的能力而引入了 cluster 模組, 但這種創建線程的方式會犧牲共享內存, 且數據通信必須透過 json 來傳輸, 因此具有一定的侷限性及性能問題。 而後發展了worker-threads這個模組之後, 具備共享內存的功能, 使其更輕量。 nodejs 在v1
概念: 有限時間內可使用通行證來要求對應的操作權限。 JWT 的組成內容有三個部分,由 . 做區隔,最後透過這三個部分,串成一個 Jwt 字串 [HEADER].[PAYLOAD].[SIGNATURE] 1. Header: 主要記載認證的方法 {     "typ": "JWT",     "
早期的 nodejs 為了具有多線程的能力而引入了 cluster 模組, 但這種創建線程的方式會犧牲共享內存, 且數據通信必須透過 json 來傳輸, 因此具有一定的侷限性及性能問題。 而後發展了worker-threads這個模組之後, 具備共享內存的功能, 使其更輕量。 nodejs 在v1
概念: 有限時間內可使用通行證來要求對應的操作權限。 JWT 的組成內容有三個部分,由 . 做區隔,最後透過這三個部分,串成一個 Jwt 字串 [HEADER].[PAYLOAD].[SIGNATURE] 1. Header: 主要記載認證的方法 {     "typ": "JWT",     "
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
來到泰國一定要做的一件事絕對是按摩! 這家 Lar thai massage 不在清邁古城,也不在尼曼路,店址位於當地安安靜靜的居民區,雖然沒有高檔大氣的裝修,走的是溫馨家庭式路線。原本我已經連按了好幾天按摩,高檔跟便宜都有,可是肩背還是覺得很僵硬,來這裏按一次整個就鬆了很多。
Thumbnail
"You live for yourselves, not for humans." About trees and their feelings of sadness due to human interference.
Thumbnail
可能包含敏感內容
aurora是一家日式的情色按摩店,比一般的按摩店多出来的服务可能也就数气垫床服务了,妹子脱光了用大胸在你身上来回蹭的感觉,那种软软绵绵的感觉,让你既放松又血脉膨胀,确实是一般按摩效果无法达到的。
Thumbnail
可能包含敏感內容
什么是泰国的Massage?分两种,一种是常规的泰式足疗或者泰式按摩,价格便宜服务号。另一种是Body to Body Massage,也叫B2B Massage,当然,是由漂亮妹子给你全程服务的。价格比中国大陆的一线城市(北上广深杭)便宜多了,服务还更好,一对比下来,在国内找服务
Thumbnail
這篇文章將會講述如何使用程式腳本讀取 Input System 的玩家輸入。
Thumbnail
按我們的立場,當然希望障礙者功能越高越好,表示我們的服務有成就,但從這個事件看起來,相當的社會大眾都希望身心障礙者,最好都不要有什麼功能,徹底當個福利依賴者,關在機構了此殘生,不要到外面社會破壞秩序。 這真的是一件悲哀的事情,尤其是,他們社會功能維持的這麼好,是花了很多納稅人的血汗錢........
Thumbnail
不了解消費前心路歷程,別指望客戶掏錢! 讓我們一起從初階、中階到進階,一篇文章讓你搞懂。
Thumbnail
疫情期間,在家上班上課的你,手機裡的外送平台訂單紀錄是否增加許多呢?外送平台帶來的方便與商機可說是有目共睹,今天Zoe帶來外送平台介紹,讓你了解外送平台的崛起原因及商業模式。無論是你是餐飲業者、消費者,或是想從事平台外送員,都可以從中找到想要的資訊!
Thumbnail
包裝設計與品牌連結的重要性 一個品牌的成形不在於企業如何形塑,而是在消費者如何感受 品牌絕對不是單單靠廣告、活動、代言人就可以在消費者心中建立形象,而是在一連串的接觸過程中逐漸形成,其中包含廣宣活動、售前售後服務、企業自媒體、產品使用過程、老闆的公開發言、企業員工與合作廠商….等等都有可能為品牌
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
來到泰國一定要做的一件事絕對是按摩! 這家 Lar thai massage 不在清邁古城,也不在尼曼路,店址位於當地安安靜靜的居民區,雖然沒有高檔大氣的裝修,走的是溫馨家庭式路線。原本我已經連按了好幾天按摩,高檔跟便宜都有,可是肩背還是覺得很僵硬,來這裏按一次整個就鬆了很多。
Thumbnail
"You live for yourselves, not for humans." About trees and their feelings of sadness due to human interference.
Thumbnail
可能包含敏感內容
aurora是一家日式的情色按摩店,比一般的按摩店多出来的服务可能也就数气垫床服务了,妹子脱光了用大胸在你身上来回蹭的感觉,那种软软绵绵的感觉,让你既放松又血脉膨胀,确实是一般按摩效果无法达到的。
Thumbnail
可能包含敏感內容
什么是泰国的Massage?分两种,一种是常规的泰式足疗或者泰式按摩,价格便宜服务号。另一种是Body to Body Massage,也叫B2B Massage,当然,是由漂亮妹子给你全程服务的。价格比中国大陆的一线城市(北上广深杭)便宜多了,服务还更好,一对比下来,在国内找服务
Thumbnail
這篇文章將會講述如何使用程式腳本讀取 Input System 的玩家輸入。
Thumbnail
按我們的立場,當然希望障礙者功能越高越好,表示我們的服務有成就,但從這個事件看起來,相當的社會大眾都希望身心障礙者,最好都不要有什麼功能,徹底當個福利依賴者,關在機構了此殘生,不要到外面社會破壞秩序。 這真的是一件悲哀的事情,尤其是,他們社會功能維持的這麼好,是花了很多納稅人的血汗錢........
Thumbnail
不了解消費前心路歷程,別指望客戶掏錢! 讓我們一起從初階、中階到進階,一篇文章讓你搞懂。
Thumbnail
疫情期間,在家上班上課的你,手機裡的外送平台訂單紀錄是否增加許多呢?外送平台帶來的方便與商機可說是有目共睹,今天Zoe帶來外送平台介紹,讓你了解外送平台的崛起原因及商業模式。無論是你是餐飲業者、消費者,或是想從事平台外送員,都可以從中找到想要的資訊!
Thumbnail
包裝設計與品牌連結的重要性 一個品牌的成形不在於企業如何形塑,而是在消費者如何感受 品牌絕對不是單單靠廣告、活動、代言人就可以在消費者心中建立形象,而是在一連串的接觸過程中逐漸形成,其中包含廣宣活動、售前售後服務、企業自媒體、產品使用過程、老闆的公開發言、企業員工與合作廠商….等等都有可能為品牌