Apache Camel + Apache ActiveMQpersistence
Camel + ActiveMQ persistence
Для работы с ActiveMQ в Camel существует:activemq компонента
она использует:jms компонету
которая использует:JmsTemplate (Spring Framework)
Camel + ActiveMQ persistence
ActiveMQ компонента(Apache Camel)
JMS компонента(Apache Camel)
JMSTemplate класс(Spring Framework)
Camel + ActiveMQ persistence
Текущий стандарт JMS - JMS 2.0 JMS 2.0 входит в состав Java EE 7
В настоящий момент разрабатывается спецификация JMS 2.1
Camel + ActiveMQ persistence
Стандарт JMS 2.0 определяет два режима доставки сообщений:
PERSISTENT - сообщение должно быть сохранено в постоянной хранилище
NON_PERSISTENT - сообщение в постоянном хранилище не сохраняется
Camel + ActiveMQ persistence
Константные значения для режимов доставки определены в интерфейсе:javax.jms.DeliveryMode
Константа Тип Значение
javax.jms.DeliveryMode.NON_PERSISTENT int 1
javax.jms.DeliveryMode.PERSISTENT int 2
Camel + ActiveMQ persistence
По-умолчанию для режима доставки используется константа:javax.jms.DeliveryMode.PERSISTENT
Camel + ActiveMQ persistence
Сообщение(message)
Производитель(producer)
Потребитель(consumer)
Сообщение(message)
Брокер сообщений(message broker)
ActiveMQ
Non Persistent
Persistent
Non Persistent
Отправляет Получает
Camel + ActiveMQ persistenceБрокер сообщений(message broker)
ActiveMQ
Non Persistent
Persistent
Non Persistent
Постоянное хранилище
(stable storage)
файловая система,база данных
Сохранение
Camel + ActiveMQ persistenceБрокер сообщений(message broker)
ActiveMQ
Non Persistent
Persistent
Non Persistent
Camel + ActiveMQ persistence
Брокер сообщений был остановлен:PERSISTENT сообщения будут доступны для потребителя после запуска брокера сообщенийNON_PERSISTENT сообщения будут потеряны и не доступны для потребителя после запуска брокера сообщений
Camel + ActiveMQ persistenceБрокер сообщений(message broker)
ActiveMQ
Non Persistent
Persistent
Non Persistent
Постоянное хранилище
файловая система,база данных
Чтение
Camel + ActiveMQ persistence
Сообщение(message)
Производитель(producer)
Потребитель(consumer)
Сообщение(message)
Брокер сообщений(message broker)
ActiveMQ
PersistentОтправляет Получает
Camel + ActiveMQ persistence
Camel позволяет использовать следующие опции для конфигурации режима доставки сообщений:
Camel + ActiveMQ persistence
deliveryPersistent - определяет, следует ли брокеру сообщений сохранять сообщение в постоянном хранилище.Тип: booleanПо-умолчанию: true (PERSISTENT)Версия Camel: все версии
Camel + ActiveMQ persistence
deliveryMode - определяет, следует ли брокеру сообщений сохранять сообщение в постоянном хранилище.Тип: int, javax.jms.DeliveryModeПо-умолчанию: null (PERSISTENT)Версия Camel: начиная с Camel 2.12
Camel + ActiveMQ persistence
deliveryMode - используется в паре с опцией explicitQosEnabled = true.Используется при конфигурации QOS параметров:-deliveryMode-priority-timeToLive
Camel + ActiveMQ persistence
explicitQosEnabled - определяет, следует ли использовать заданные QOS параметры при отправке сообщения.Тип: booleanПо-умолчанию: falseВерсия Camel: все версии
Camel + ActiveMQ persistence
preserveMessageQos - определяет, следует ли игнорировать заданные QOS параметры для конечной точки (endpoint) и использовать параметры заданные в сообщении.Тип: booleanПо-умолчанию: falseВерсия Camel: все версии
Camel + ActiveMQ persistence
Note: использование NON_PERSISTENT сообщений позволяют увеличить скорость обработки, т.к. нет необходимости в сохранении сообщений в постоянное хранилище. Однако вместе с этим увеличивается потребление оперативной памяти.
Camel + ActiveMQ persistence
Подробно:Camel ActiveMQCamelJMSJMS 2.0 спецификацияJMS 2.0 в рамках Java EE 7Camel + ActiveMQ persistence