Потребители в RabbitMQ DirectMessageListenerContainer - Влияние памяти в Cloud Foundry - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть сценарий, в котором я создаю предопределенных потребителей для очередей в компоненте DirectMessageListenerContainer следующим образом:

@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 потребителей для каждой очереди, работающей на отдельном канале. Например, если я добавлю 5 очередей к этому bean-компоненту, общее число потреблений будет 25, работающих на 5 разных каналах. Мои вопросы:

  1. Какое влияние окажут незанятые потребители на процессор в Cloud Foundry. Если в некоторых очередях будет меньше сообщений, это повлияет на производительность приложения, так как будет несколько неактивных потребителей?

  2. Есть ли способ определить конкретное количество потребителей каждой очереди в отдельности?

Заранее спасибо

1 Ответ

0 голосов
/ 04 сентября 2018

Свободные потребители будут использовать минимальные ресурсы (только небольшой объем памяти, без процессора). Нет, вы не можете указать количество потребителей для каждой очереди, если у вас нет отдельного контейнера для каждой.

...