Spring Boot: обмен сообщениями, JMS, ActiveMQ

Обмен сообщениями

Spring Framework предоставляет обширную поддержку для интеграции с системами обмена сообщениями, от упрощенного использования JMS API с использованием JmsTemplate до полной инфраструктуры для асинхронного получения сообщений. Spring AMQP предоставляет аналогичный набор функций для расширенного протокола очереди сообщений (Advanced Message Queuing Protocol). Spring Boot также предоставляет параметры автоматической настройки для RabbitTemplate и RabbitMQ. Spring WebSocket изначально включает в себя поддержку обмена сообщениями STOMP, а Spring Boot поддерживает его через стартеры и небольшое количество автоконфигурации. Spring Boot также поддерживает Apache Kafka.

JMS

Интерфейс javax.jms.ConnectionFactory предоставляет стандартный метод создания javax.jms.Connection для взаимодействия с JMS-брокером. Хотя Spring нуждается в ConnectionFactory для работы с JMS, вам, как правило, нет необходимости использовать его непосредственно самостоятельно, и вместо этого вы можете полагаться на абстракции обмена сообщениями более высокого уровня. Spring Boot также автоматически настраивает необходимую инфраструктуру для отправки и получения сообщений.

Поддержка ActiveMQ

Когда ActiveMQ доступен на пути к классам, Spring Boot также может настроить ConnectionFactory. Если посредник присутствует, встроенный посредник автоматически запускается и настраивается (при условии, что в конфигурации не указан URL посредника).

Если вы используете spring-boot-starter-activemq, предоставляются необходимые зависимости для подключения или встраивания экземпляра ActiveMQ, а также инфраструктура Spring для интеграции с JMS.

Конфигурация ActiveMQ управляется внешними свойствами конфигурации в spring.activemq.*. Например, вы можете объявить следующий раздел в application.properties:

spring.activemq.broker-url=tcp://192.168.1.210:9876
spring.activemq.user=admin
spring.activemq.password=secret

По умолчанию CachingConnectionFactory оборачивает собственный ConnectionFactory разумными настройками, которыми вы можете управлять с помощью внешних свойств конфигурации в spring.jms.*:

spring.jms.cache.session-cache-size=5

Если вы предпочитаете использовать собственный пул, вы можете сделать это, добавив зависимость к org.messaginghub:pooled-jms и настроив JmsPoolConnectionFactory соответствующим образом, как показано в следующем примере:

spring.activemq.pool.enabled=true
spring.activemq.pool.max-connections=50

Вы также можете зарегистрировать произвольное количество bean-компонентов, которые реализуют ActiveMQConnectionFactoryCustomizer для более сложных настроек.

По умолчанию ActiveMQ создает адресата, если он еще не существует, поэтому адресаты сопоставляются с предоставленными им именами.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки