2013-04-09 53 views
0

我們想要控制消費者在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); 

是一個問題 - 如何控制消費率是多少?以及爲什麼此設置不會影響費率?

回答

0

你嘗試從一個ClientSession類這種方法?:

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