在最开始的时候我们学习到RabbitMQ.分发消息采用的轮训分发,但是在某种场景下这种策略并不是很好,比方说有两个消费者在处理任务,其中有个消费者1处理任务的速度非常快,而另外一个消费者2处理速度却很慢,这个时候我们还是采用轮训分发的化就会到这处理速度快的这个消费者很大一部分时间处于空闲状态,而处理慢的那个消费者一直在干活,这种分配方式在这种情况下其实就不太好,但是RabbitMQ并不知道这种情况,它依然很公平的进行分发。
为了避免这种情况,我们可以设置参数channel.basicQos(1)
// 设置不公平分发
int prefetchCount = 1;
channel.basicQos(prefetchCount);