.NET RabbitMQ Client BasicQos 屬性配置

連線的ConnectionFactory配置完成後,接著就會配置 BasicQos
BasicQos 用於配置消息預取 (Prefetch) 的方法
可以限制消費者從隊列中一次獲取的消息數量,從而更好地管理消息的處理流量,防止消費者過載

PrefetchSize Message預取大小

限制一次傳過來的訊息「總大小」(用 bytes 表示)
客戶端中通常設置為 0(表示不限制大小)

PrefetchCount Message預取數量

每個消費者一次可以拿多少訊息
假如配置為 100 ,表示每個消費者最多只能一次拿到 100 個訊息
當它處理完某些訊息後(確認了處理完成),RabbitMQ 才會再送新的訊息給它

如何判斷要怎麼配置 PrefetchCount,可透過監測各自系統消化的時間進行調整
PrefetchCount = 處理能力(每秒消息數) x 處理時延(秒)

Global 全域設定

true:對整個連線生效,所有消費者共用同一個 PrefetchCount 限制
false:只針對當前消費者生效,PrefetchCount 限制為獨立配置

為什麼需要 BasicQos?

配置 BasicQos 的目的是平衡消息分發效率與消費者的處理能力,避免消息積壓或消費者資源耗盡的情況

低負載場景:可以適當增大 PrefetchCount,提升吞吐量
高負載場景:減小 PrefetchCount,確保每個消費者能穩定處理分配的消息
通過正確配置 BasicQos,能顯著提升系統的穩定性和性能,確保消息消費的高效運行

訂閱
通知
guest
0 留言
預約回饋
查看所有留言