#java #jms #activemq-artemis
#java #jms #activemq-artemis
Вопрос:
Я работаю над Java-приложением, которое получает список сообщений, а затем вставляет их в очередь. Возможно ли напрямую вставить список сообщений на мой сервер Artemis JMS (своего рода пакетная вставка)? Или я должен вставлять их по одному?
Ответ №1:
Используя JMS API, вы можете создать «транзакционный» сеанс, отправить пакет сообщений, а затем вызвать commit()
сеанс. С точки зрения приложения кажется, что сообщения отправляются одно за другим, поскольку send()
вызывается для каждого сообщения. Однако наиболее трудоемкая работа выполняется только при вызове commit()
, который выполняется только один раз за пакет. Это часто делается в качестве оптимизации производительности, особенно для постоянных сообщений, чтобы избежать повторной блокировки, которая происходит при отдельных отправлениях без транзакций. Использование транзакций для пакетной обработки обсуждается в разделе «Настройка JMS» документации ActiveMQ Artemis по настройке производительности.