问题:
我有一个生产者和消费者客户端,可以读取队列或从队列中写入(使用Java MQ的Java AMQP库)。
生产者的生产率高于消费者。 现在,在停止生产者时,消费者仍然继续使用队列中的数据。
但是Rabbit MQ控制台上的队列显示为空。
客户端库是否缓存队列中的内容?为什么会发生这种情况?
答案 0 :(得分:3)
客户端库是否缓存队列中的内容?
是的,客户端可以缓存消息
为什么会出现这种情况?
为了提高性能。
顺便说一下,您可以看到客户端prefetch参数
修改* 强>
默认情况下,邮件是预先填写的。邮件由消费者检索 块,但实际上在消费者发送时消耗并从队列中删除 确认。
您应该检查未确认的消息: