RabbitMq:禁用自动确认为false的预取(预取计数=0)
是否可以使用auto ack=false禁用预取?我只是想避免每次确认消息时都从队列中读取消息(预取)。我只想在调用“消费消息”时阅读消息。将预取计数设置为0似乎不起作用,它被视为“无指定限制” 更新:RabbitMq:禁用自动确认为false的预取(预取计数=0),rabbitmq,amqp,Rabbitmq,Amqp,是否可以使用auto ack=false禁用预取?我只是想避免每次确认消息时都从队列中读取消息(预取)。我只想在调用“消费消息”时阅读消息。将预取计数设置为0似乎不起作用,它被视为“无指定限制” 更新: 据我所知,“prefetch_count”是客户端缓存的消息数(本地读取到缓冲区)。例如,有一个用例: (假设有一个我们连接的队列,它有消息) 创建一个连接 设置基本Qos(预取计数=1) 开始消费基本的。消费 由于预回迁计数=1,一条消息已传输到客户端,准备读取并标记为未确认 读取消息,然后对
据我所知,“prefetch_count”是客户端缓存的消息数(本地读取到缓冲区)。例如,有一个用例: (假设有一个我们连接的队列,它有消息)
我认为将预回迁计数设置为0可以避免第4步,并且只有在您读取消息时才会传输消息-客户端没有缓存。预回迁和自动确认与此无关。预回迁计数只是准备发送给特定消费者的未确认的消息数 假设您将预回迁计数设置为N。如果您将自动确认设置为true,则这意味着这些N条消息在接收时被确认。如果将其设置为false,这意味着您仍然会收到N条消息,但在您手动确认之前,它们不会被确认 对于最后一部分-尝试将预回迁计数设置为1 同时检查这两个答案。Hm。。。文档中说:“如果设置了无ack选项,则忽略预取计数”。现在还不清楚—客户端使用了多少消息?您建议我的东西(auto ack=false和prefertch_ucount=1)正是我更新部分问题的用例。但关键是第4步。这是我想要避免的。将预取计数设置为0无效-这意味着未指定计数。我希望这是清楚的。