Java使用RabbitMQ(五)--消息分发策略

消息分发策略
RabbitMQ默认的消息分发策略是公平分发(Fair dispatch),把消息轮流发给每个worker者。
这样有个问题:某个worker很忙的 时候,会累积大量的消息,导致异常、内存溢出等问题。
一个解决方案是:设置某一时间只给一个worker者发送一条消息,在没有收到ack消息回应时,不给发第二个。

int prefetchCount = 1;
channel.basicQos(prefetchCount);

当然这种解决方式也有它的问题,就是rabbitMQ可能会累积大量消息,队列很快会满,这就需要添加更多的worker来处理这些消息。

阅读更多
换一批

没有更多推荐了,返回首页