消费端限流

什么是消费端的限流

假设一个场景,首先我们rabbitmq服务器上面有上万条没有处理的消息,我们随便打开一个消费者客户端,会出现下面情况:

巨量消息瞬间全部推送过来,但是我们当个客户端没有办法进行处理这么多的数据,可能会造成服务器宕机。

 

rabbitmq提供一种qos(服务质量保证)功能,即在非自动确认消息的前提下,如果一定数目的消息(通过基于consume或者channel设置qos的值)未被确认前,不进行消费新的消息(就是没有ACK之前所以没有新的消息到达consumer方法) 

void basicQos(uint prefetchSize,ushort  prefetchCount ,bool global);

消费端限流_第1张图片

 消费端限流_第2张图片

 

你可能感兴趣的:(rabbitMQ)