控制HornetQ中的消息消耗率

时间:2013-04-09 12:20:06

标签: hornetq consumer

我们希望控制消费者在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);

问题是 - 如何控制消费率?为什么这个设置不影响费率?

1 个答案:

答案 0 :(得分:0)

您是否从ClientSession类尝试此方法?:

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