我们想要控制消费者在 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);
问题是——如何控制消费率?为什么这个设置不影响速率?