0

我们在 windows 服务器上运行最新版本的 RabbitMQ 2.1.1,并使用 .Net 客户端。我们正在运行一个测试如下:向transcient nondurable fanout exchange发布500000条消息,客户端使用自动删除队列。只有一个队列。发布者每秒发送约 10K 条消息。发送完所有消息后,它会断开连接。rabbitmqctl 工具显示队列大小为 0,但接收者仍在接收消息几秒钟,它只收到了 60% 的消息。您知道为什么会有这样的延迟以及如何将其最小化吗?

干杯!

4

1 回答 1

1

如果您使用带有 no_ack=True (禁用确认)的 basic.consume,服务器将只发送它拥有的所有消息。

当服务器已将所有消息发送给您的消费者(这就是队列为空的原因)但它们可能仍在网络上某处或您的消费者中缓冲时,就会发生这种行为。

于 2010-11-03T17:44:55.690 回答