RabbitMQ 四 流量控制

2021-10-21 20:09:43 字數 1162 閱讀 2054

消費端流量控制

x-max-length:最大長度

x-max-length-bytes:佇列最大容量

rabbitmq 會在啟動和執行命令rabbitmqctl set_vm_memory_high_watermark 40%(百分比)的時候檢測系統所安裝的記憶體總量。預設情況下,當 rabbitmq 伺服器使用超過40%的記憶體時,它會引起乙個記憶體報警並且阻塞所有連線。一旦記憶體報警清除後(例如,由於 rabbitmq 伺服器將訊息頁交換到磁碟或者分發到客戶端時)就會恢復正常服務了。

當磁碟可用空間只剩下 30% 或 1gb的時候,rabbitmq會阻塞所有連線,配置如下

# 相對配置,百分比

disk_free_limit.relative = 0.3

# 絕對配置,固定值

disk_free_limit.absolute = 1gb

消費者在開啟ack 自動應答的情況下,對接收到的訊息可以根據業務的需要非同步對訊息進行確認。

然而在實際使用過程中,由於消費者自身處理能力有限,從 rabbitmq 獲取一定數量的訊息後,希望 rabbitmq 不再將佇列中的訊息推送過來,當對訊息處理完後再接收來自佇列的訊息。在這種場景下,我們可以通過設定 basic.qos 信令中的 prefetch_count 來達到這種效果。

**如下:

consumer consumer =

newdefaultconsumer

(channel)};

// 非自動確實訊息的前提下,如果一定數量的訊息未進行確認,將不再接收訊息

channel.

basicqos(10

);// prefetch count

// 開始獲取訊息string queue, boolean autoack, consumer callback

channel.

basicconsume

(rabbitmqconfig.queue_name,

false

, consumer)

;// 此處要注意,必須關閉自動應答autoack=false

mysql流量控制 UDP流量控制之分析

關健字 udpudx udttcp 吞吐量流量 代寬擁塞控制 大都知道,udp是不可靠傳輸協議與tcp剛好相反.不過因為udp的特性適合傳輸不需要確認的資料,在應用層如果設計好的傳輸協議一樣可以進行很好的可靠傳輸.比如rudp協議.但是光可靠傳輸還不夠,流量控制是很重要的.我們從簡單的情況說起來說明...

流量控制原則

對於tcp ip一書中tcp部分,我認為關鍵要掌握3點 1.建鏈和拆鏈過程 2.資料互動規則 3.流量控制原則 針對這幾點,我進行了簡要概括,希望有助於初學者理解 流量控制原則 個人對於流量控制的理解,就是平衡一系列的矛盾,使資料 傳輸各方面的綜合成本最低。某個時間點,網路的容量或是某個連線的容量總...

TCP流量控制

一般來說,我們總是希望資料傳輸的更快一些,但如果傳送方把資料傳送的很快,而接收方來不及接收,這就可能造成資料的丟失。流量控制就是讓傳送方的傳送速率不要太快,讓接收方來得及接收。對於成塊資料流,tcp利用滑動視窗機制來實現流量的控制,對於互動資料流,tcp利用捎帶ack和nagle演算法來實現流量的控...