2016-08-18 48 views
0

我想用node-amqp庫爲RabbitMQ創建多個消費者,但我不明白prefetch-count選項是否指的是每個消費者的計數。我希望每個消費者都有自己的預取計數,而不依賴於其他消費者。rabbitmq - 每個消費者的預取計數

謝謝。

+1

FWIW - 你不應該使用node-amqp。該庫有一些已知的內存泄漏和錯誤會導致嚴重的問題。 RabbitMQ團隊建議使用「amqplib」(又名amqp.node):https://github.com/squaremo/amqp.node –

回答

2

可以是單個消費者,但可以同時爲多個消費者設置。只需查找標題示例 - 單個消費者here。所以AMQP支持它。我不確定你提到的庫,但是在官方的java lib中就是這樣 - 對AMQP的basic.qos方法透明。 還從上述鏈接

注意,對於全局標誌的默認值是在大多數API

和RabbitMQ的假,當全球==假

prefetch_count分別適用通道上的每個新消費者

因此您需要了解它在該libabry中實現。

另外考慮使用amqp.node庫,因爲這個庫在rabbimtq教程中使用。 (EDIT我現在纔看到Derick Bailey已經提到過了。)

+1

我認爲rabbitmq的默認值不是全局的,所以預取將按每個通道設置。因此,當使用此設置時,您應該將每個渠道的消費者限制爲單個隊列 –

+0

是的,這也是我從文檔中理解的。我也同意 - 1個頻道,1個消費者,1個隊列。我沒有偶然發現一個用例,否則它會更好,而且無論如何它都是最有意義的。 – cantSleepNow