RabbitMQ中的预取大小是什么?

xdnvmnnf  于 2023-02-19  发布在  RabbitMQ
关注(0)|答案(2)|浏览(160)

在RabbitMQ教程中,有这样的代码:

channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false);

我知道什么是prefetchCountglobal,但不知道prefetchSize
有人知道吗?

lsmd5eda

lsmd5eda1#

我在协议参考https://www.rabbitmq.com/amqp-0-9-1-reference.html中发现了这一点(强调我的):
长预取大小
客户端可以请求提前发送消息,使得当客户端处理完一条消息时,后面的消息已经在本地保存,而不需要沿通道发送。预取可提高性能。此字段以八位字节为单位指定预取窗口大小。如果邮件大小等于或小于可用的预取大小,则服务器将提前发送邮件(也福尔斯其他预取限制)。可以设置为零,表示“无特定限制”,但其他预取限制可能仍然适用。如果设置了no-ack选项,则忽略预取大小。
当客户端不处理任何消息时,服务器必须忽略此设置-即预取大小不限制向客户端传输单个消息,仅在客户端仍有一个或多个未确认消息时提前发送更多消息。

kuuvgm7e

kuuvgm7e2#

prefetchSize:服务器将传送的最大内容量(以八位字节为单位),0表示无限制。
prefetchCount:服务器将传送的最大消息数,如果不限制则为0。
count表示根据邮件数量设置限制,而size表示根据实际邮件内容大小设置限制。

相关问题