Повышение производительности при отправке сообщений с использованием асинхронной доставки

#activemq #ibm-mq

Вопрос:

IBM предоставляет метод управления производительностью при использовании асинхронной доставки:

setMsgBatchSize

общедоступный пустой setMsgBatchSize(размер int) вызывает исключение javax.jms.JMSException

Задает размер пакета сообщений.

Параметры: размер — максимальное количество сообщений, которые должны приниматься одновременно при использовании асинхронной доставки. Бросает: исключение javax.jms.JMSException

Как мы можем достичь этого на ActiveMQ? Из официальной документации ActiveMQ они предоставили свойство, названное:

 cf.setUseAsyncSend(true);
 

Я не уверен, что ActiveMQ был установлен msg batch size по умолчанию, и когда мы установили useAsyncSend true его, мы можем достичь результатов, как это сделала IBM.

Заранее благодарю вас и готов выслушать любую дискуссию.

Ответ №1:

ActiveMQ не имеет эквивалентной опции. Когда сообщение отправляется, оно немедленно отправляется на провод, и если включена опция асинхронной отправки (по умолчанию верно), то для сообщений, которые не являются постоянными или находятся в транзакции, нет необходимости ждать удаленного подтверждения отправки, ваш код может немедленно отправить следующее сообщение.