RabbitMQ basicQos預取方法引數解析

2021-10-19 18:40:17 字數 1102 閱讀 5932

乙個引數

channel.basicqos(1); //basicqos(int prefetchcount)

兩個引數

channel.basicqos(3,false); //basicqos(int prefetchcount, boolean global)

三個引數

channel.basicqos(0,3,false); //basicqos(int prefetchsize, int prefetchcount, boolean global)

prefetchsize:可接收訊息的大小的

prefetchcount:處理訊息最大的數量。舉個例子,如果輸入1,那如果接收乙個訊息,但是沒有應答,則客戶端不會收到下乙個訊息,訊息只會在佇列中阻塞。如果輸入3,那麼可以最多有3個訊息不應答,如果到達了3個,則傳送端發給這個接收方得訊息只會在佇列中,而接收方不會有接收到訊息的事件產生。總結說,就是在下一次傳送應答訊息前,客戶端可以收到的訊息最大數量。

global:是不是針對整個connection的,因為乙個connection可以有多個channel,如果是false則說明只是針對於這個channel的

例子

乙個生產者一次性生產20條訊息,兩個消費者,qosconsumermain,qosconsumermain2,將兩個消費者的prefetchcount值設定成5,qosconsumermain沒有進行ack,而qosconsumermain2進行了ack,結果如下

結論:prefetchcount為配置設定的值5,意味著每個消費者每次會預取5個訊息準備消費。

備註:prefetchsize 和global這兩項,實際過程中幾乎不使用,引數設不設定幾乎沒有硬性並且rabbitmq沒有實現,暫且不做討論。rabbitmq後期更新了這兩項引數,後期再分享使用經驗。

thinkphp I方法取傳參

1 2 獲取輸入引數 支援過濾和預設值 3 使用方法 4 5 i id 0 獲取id引數 自動判斷get或者post 6 i post.name htmlspecialchars 獲取 post name 7 i get.獲取 get 8 9 param string name 變數的名稱 支援指定...

SQLplus 下行預取特性

通常情況下資料庫引擎每訪問乙個資料塊將產生至少乙個邏輯讀。而行預取與邏輯讀息息相關。行預取是指當客戶端從資料庫獲取資料時 可以採用單行也可以採用多行方式返回資料。當採用多行方式時,則會預取多條記錄儲存在客戶端記憶體中以避免後續多次該資料的請求所致的 各種開銷 lio,pio,net io 一般預取行...

vue頁面跳轉以及傳參和取參

vue中this.router.push 路由傳值和獲取的兩種常見方法 1 路由傳值 this.router.push 1 想要導航到不同的url,使用router.push 方法,這個方法會向history棧新增乙個新紀錄,所以,當使用者點選瀏覽器後退按鈕時,會回到之前的url 2 當點選 時,這...