Искаме да контролираме скоростта, с която потребителят може да използва съобщения в 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);
Въпросът е - как да контролираме разхода? и защо тази настройка не влияе на скоростта?