Мы хотим контролировать скорость, с которой потребитель может потреблять сообщения в 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);
Вопрос - как контролировать скорость потребления? и почему этот параметр не влияет на скорость?