Контроль скорости потребления сообщений в HornetQ

Мы хотим контролировать скорость, с которой потребитель может потреблять сообщения в HornetQ.

Проблема в том, что когда мы используем метод ServerLocator.setConsumerMaxRate(int), мы всегда получаем 1 сообщение в секунду, независимо от передаваемого значения.

Когда мы не вызываем этот метод, скорость потребления высока (намного больше, чем 1 в секунду).

Наш код:

        TransportConfiguration connectorConfig = new TransportConfiguration(InVMConnectorFactory.class.getName());

        ServerLocator locator = HornetQClient.createServerLocatorWithoutHA(connectorConfig);

        locator.setAckBatchSize(ackBatchSize);
        locator.setConsumerWindowSize(CONSUMER_WINDOW_SIZE);
        locator.setClientFailureCheckPeriod(Long.MAX_VALUE);
        locator.setConnectionTTL(-1);
        locator.setConsumerMaxRate(10);

Вопрос - как контролировать скорость потребления? и почему этот параметр не влияет на скорость?


person Elad Eldor    schedule 09.04.2013    source источник


Ответы (1)


Вы пробовали этот метод из класса ClientSession?:

ClientConsumer createConsumer(String queueName, String filter, int windowSize, int maxRate, boolean browseOnly) throws HornetQException;
person Arya    schedule 09.04.2013