RabbitMQ何时使用TCP背压?
根据Pika的文档,RabbitMQ的代理会使用TCP背压来减缓客户端的速度,如果客户端发送消息的速度太快的话。我已经注册了一个背压回调函数,但到现在为止还没有被调用。我的队列里有超过4000万条消息,而且还在不断增加。如果我把背压的倍数设置为-1,我可以让我的回调函数在每次发布消息时都被调用,但这只是用来调试的,没什么实际用处。
1 个回答
7
其实并不是说“你的客户端...发送消息太快”,而是任何客户端发送消息太快的时候。
RabbitMQ会监控它使用的内存量,当使用的内存超过机器物理内存的一定比例时,它会采取措施来减缓消息的发送。默认情况下,这个比例是0.4,但可以进行更改。想了解更多细节,可以查看http://www.rabbitmq.com/memory.html。