消費端限流

2021-09-24 22:04:10 字數 492 閱讀 2808

什麼是消費端的限流

假設乙個場景,首先我們rabbitmq伺服器上面有上萬條沒有處理的訊息,我們隨便開啟乙個消費者客戶端,會出現下面情況:

巨量訊息瞬間全部推送過來,但是我們當個客戶端沒有辦法進行處理這麼多的資料,可能會造成伺服器宕機。

rabbitmq提供一種qos(服務質量保證)功能,即在非自動確認訊息的前提下,如果一定數目的訊息(通過基於consume或者channel設定qos的值)未被確認前,不進行消費新的訊息(就是沒有ack之前所以沒有新的訊息到達consumer方法) 

消費端ACK和消費端限流

rabbitmq提供了一種qos 服務質量保證 功能,即在非自動確認訊息的前提下,如果一定數目的訊息 通過consumer或者channel設定qos的值 未被確認前,不進行消費新的訊息.自動簽收要設定成false,建議實際工作中也設定成false void basicqos int prefetc...

RabbitMQ 消費端的限流策略

假設乙個場景,由於我們的消費端突然全部不可用了,導致 rabbitmq 伺服器上有上萬條未處理的訊息,這時候如果沒做任何現在,隨便開啟乙個消費端客戶端,就會導致巨量的訊息瞬間全部推送過來,但是我們單個客戶端無法同時處理這麼多的資料,就會導致消費端變得巨卡,有可能直接崩潰不可用了。所以在實際生產中,限...

大廠如何用RabbitMQ做消費端限流

假設rabbitmq伺服器有上萬條未處理訊息,隨便開啟乙個消費端,會造成巨量訊息瞬間全部推送過來,然而我們單個客戶端無法同時處理這麼多資料。還比如說單個pro一分鐘產生了幾百條資料,但是單個con一分鐘可能只能處理60條,這時pro con不平衡。通常pro沒辦法做限制,所以con就需要做一些限流措...