队列中有很多消息,它们的处理非常漫长/繁重。我当时认为解决此类瓶颈的方法是增加将消息从队列中删除的消费者数量。
目前尚不清楚如何在队列上实现大量消费者(或1条消息的1个消费者)。但是以下是我的尝试。
我创建了一个具有大量使用者的SimpleRabbitListenerContainerFactory,如下所示。
@Bean
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setConcurrentConsumers(50);
factory.setMaxConcurrentConsumers(200);
factory.setStartConsumeMinInterval(1l);
return factory;
}
我不知道队列中将有多少条消息,而且我也不想在前面放置太多。我想利用消费者扩展算法来快速扩展。据我了解,如果减少ConsumeMinInterval
,可以更快地进行扩展。可能会比ConsumeMinInterval设置为1更快吗?
一个包含大量闲置消费者的影响的答案将受到高度赞赏。另外,有趣的是要提及在增加消费者数量时必须考虑的任何预防措施或限制,即使增加了许多消费者受益,当然也不能增加太多。