apache camel + apache activemq persistence
DESCRIPTION
Persistence configuration.TRANSCRIPT
![Page 2: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/2.jpg)
Camel + ActiveMQ persistence
Для работы с ActiveMQ в Camel существует:activemq компонента
она использует:jms компонету
которая использует:JmsTemplate (Spring Framework)
![Page 3: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/3.jpg)
Camel + ActiveMQ persistence
ActiveMQ компонента(Apache Camel)
JMS компонента(Apache Camel)
JMSTemplate класс(Spring Framework)
![Page 4: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/4.jpg)
Camel + ActiveMQ persistence
Текущий стандарт JMS - JMS 2.0 JMS 2.0 входит в состав Java EE 7
В настоящий момент разрабатывается спецификация JMS 2.1
![Page 5: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/5.jpg)
Camel + ActiveMQ persistence
Стандарт JMS 2.0 определяет два режима доставки сообщений:
PERSISTENT - сообщение должно быть сохранено в постоянной хранилище
NON_PERSISTENT - сообщение в постоянном хранилище не сохраняется
![Page 6: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/6.jpg)
Camel + ActiveMQ persistence
Константные значения для режимов доставки определены в интерфейсе:javax.jms.DeliveryMode
Константа Тип Значение
javax.jms.DeliveryMode.NON_PERSISTENT int 1
javax.jms.DeliveryMode.PERSISTENT int 2
![Page 7: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/7.jpg)
Camel + ActiveMQ persistence
По-умолчанию для режима доставки используется константа:javax.jms.DeliveryMode.PERSISTENT
![Page 8: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/8.jpg)
Camel + ActiveMQ persistence
Сообщение(message)
Производитель(producer)
Потребитель(consumer)
Сообщение(message)
Брокер сообщений(message broker)
ActiveMQ
Non Persistent
Persistent
Non Persistent
Отправляет Получает
![Page 9: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/9.jpg)
Camel + ActiveMQ persistenceБрокер сообщений(message broker)
ActiveMQ
Non Persistent
Persistent
Non Persistent
Постоянное хранилище
(stable storage)
файловая система,база данных
Сохранение
![Page 10: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/10.jpg)
Camel + ActiveMQ persistenceБрокер сообщений(message broker)
ActiveMQ
Non Persistent
Persistent
Non Persistent
![Page 11: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/11.jpg)
Camel + ActiveMQ persistence
Брокер сообщений был остановлен:PERSISTENT сообщения будут доступны для потребителя после запуска брокера сообщенийNON_PERSISTENT сообщения будут потеряны и не доступны для потребителя после запуска брокера сообщений
![Page 12: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/12.jpg)
Camel + ActiveMQ persistenceБрокер сообщений(message broker)
ActiveMQ
Non Persistent
Persistent
Non Persistent
Постоянное хранилище
файловая система,база данных
Чтение
![Page 13: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/13.jpg)
Camel + ActiveMQ persistence
Сообщение(message)
Производитель(producer)
Потребитель(consumer)
Сообщение(message)
Брокер сообщений(message broker)
ActiveMQ
PersistentОтправляет Получает
![Page 14: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/14.jpg)
Camel + ActiveMQ persistence
Camel позволяет использовать следующие опции для конфигурации режима доставки сообщений:
![Page 15: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/15.jpg)
Camel + ActiveMQ persistence
deliveryPersistent - определяет, следует ли брокеру сообщений сохранять сообщение в постоянном хранилище.Тип: booleanПо-умолчанию: true (PERSISTENT)Версия Camel: все версии
![Page 16: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/16.jpg)
Camel + ActiveMQ persistence
deliveryMode - определяет, следует ли брокеру сообщений сохранять сообщение в постоянном хранилище.Тип: int, javax.jms.DeliveryModeПо-умолчанию: null (PERSISTENT)Версия Camel: начиная с Camel 2.12
![Page 17: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/17.jpg)
Camel + ActiveMQ persistence
deliveryMode - используется в паре с опцией explicitQosEnabled = true.Используется при конфигурации QOS параметров:-deliveryMode-priority-timeToLive
![Page 18: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/18.jpg)
Camel + ActiveMQ persistence
explicitQosEnabled - определяет, следует ли использовать заданные QOS параметры при отправке сообщения.Тип: booleanПо-умолчанию: falseВерсия Camel: все версии
![Page 19: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/19.jpg)
Camel + ActiveMQ persistence
preserveMessageQos - определяет, следует ли игнорировать заданные QOS параметры для конечной точки (endpoint) и использовать параметры заданные в сообщении.Тип: booleanПо-умолчанию: falseВерсия Camel: все версии
![Page 20: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/20.jpg)
Camel + ActiveMQ persistence
Note: использование NON_PERSISTENT сообщений позволяют увеличить скорость обработки, т.к. нет необходимости в сохранении сообщений в постоянное хранилище. Однако вместе с этим увеличивается потребление оперативной памяти.
![Page 21: Apache Camel + Apache ActiveMQ persistence](https://reader036.vdocuments.pub/reader036/viewer/2022081717/548c4e21b47959e20c8b63b5/html5/thumbnails/21.jpg)
Camel + ActiveMQ persistence
Подробно:Camel ActiveMQCamelJMSJMS 2.0 спецификацияJMS 2.0 в рамках Java EE 7Camel + ActiveMQ persistence