Контролиране на скоростта на потребление на съобщения в 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