RabbitMQ DirectMessageListenerContainer中的使用者-Cloud Foundry中的内存影响

时间:2018-09-04 06:39:46

标签: spring-boot rabbitmq cloudfoundry spring-amqp

在一种情况下,我将为DirectMessageListenerContainer bean中的队列创建预定义的使用者,如下所示:

@Bean
public DirectMessageListenerContainer directMessageListenerContainer(ConnectionFactory conn, DynamicTenantListenerCreator listener){
    DirectMessageListenerContainer factory = new DirectMessageListenerContainer();
    factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
    factory.setConnectionFactory(conn);
    factory.setConsumersPerQueue(5);
    factory.setMessageListener(listener);
    return factory;
}

据我了解,这会将5个使用者分配给在单独渠道上工作的每个队列。例如,如果我向此bean添加5个队列,那么在5个不同的通道上使用的总次数将是25。我的问题是:

  1. 空闲的使用者对Cloud Foundry中的CPU会有什么影响。如果某些队列中的消息较少,是否会有空闲的使用者来影响应用程序的性能?

  2. 有没有办法分别定义每个队列的特定数量的使用者?

预先感谢

1 个答案:

答案 0 :(得分:0)

空闲的使用者将使用最少的资源(只有少量内存,没有CPU)。不,除非您为每个队列都有一个单独的容器,否则您不能为每个队列指定消费者计数。