SlideShare a Scribd company logo
1 of 21
Download to read offline
Apache Camel + Apache ActiveMQ 
persistence 
ilya.lapitan@gmail.com
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) 
Сообщение 
(message) 
Потребитель 
(consumer) 
Брокер сообщений 
(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) 
Сообщение 
(message) 
Потребитель 
(consumer) 
Брокер сообщений 
(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 ActiveMQ 
CamelJMS 
JMS 2.0 спецификация 
JMS 2.0 в рамках Java EE 7 
Camel + ActiveMQ persistence

More Related Content

Viewers also liked

07 - Java. Элементы функционального программирования в Java
07 - Java. Элементы функционального программирования в Java07 - Java. Элементы функционального программирования в Java
07 - Java. Элементы функционального программирования в JavaRoman Brovko
 
08 - Java. Java-классы: взгляд изнутри
08 - Java. Java-классы: взгляд изнутри08 - Java. Java-классы: взгляд изнутри
08 - Java. Java-классы: взгляд изнутриRoman Brovko
 
06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системе06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системеRoman Brovko
 
Стратегии выполнения тестов в Gradle
Стратегии выполнения тестов в GradleСтратегии выполнения тестов в Gradle
Стратегии выполнения тестов в GradleIlya Lapitan
 
Google советы успешного поиска
 Google советы успешного поиска Google советы успешного поиска
Google советы успешного поискаIlya Lapitan
 
Sio2013 plto-pin
Sio2013 plto-pinSio2013 plto-pin
Sio2013 plto-pinJulio Cejas
 
10 - Java. Многопоточность в Java: основы
10 - Java. Многопоточность в Java: основы10 - Java. Многопоточность в Java: основы
10 - Java. Многопоточность в Java: основыRoman Brovko
 
11 - Java. Многопоточность в Java: средства стандартной библиотеки
11 - Java. Многопоточность в Java:  средства стандартной библиотеки11 - Java. Многопоточность в Java:  средства стандартной библиотеки
11 - Java. Многопоточность в Java: средства стандартной библиотекиRoman Brovko
 
Разработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring FrameworkРазработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring FrameworkCUSTIS
 
Konstantin slisenko - Spring Framework
Konstantin slisenko - Spring FrameworkKonstantin slisenko - Spring Framework
Konstantin slisenko - Spring Frameworkbeloslab
 
JMS-Java Message Service
JMS-Java Message ServiceJMS-Java Message Service
JMS-Java Message ServiceKasun Madusanke
 
66 - Spring. Spring и JSF
66 - Spring. Spring и JSF66 - Spring. Spring и JSF
66 - Spring. Spring и JSFRoman Brovko
 
Date & Time in Java SE 8
Date & Time in Java SE 8Date & Time in Java SE 8
Date & Time in Java SE 8Ilya Lapitan
 
Проблемы производительности open source библиотек
Проблемы производительности open source библиотекПроблемы производительности open source библиотек
Проблемы производительности open source библиотекVladimir Sitnikov
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actiondejanb
 

Viewers also liked (20)

07 - Java. Элементы функционального программирования в Java
07 - Java. Элементы функционального программирования в Java07 - Java. Элементы функционального программирования в Java
07 - Java. Элементы функционального программирования в Java
 
08 - Java. Java-классы: взгляд изнутри
08 - Java. Java-классы: взгляд изнутри08 - Java. Java-классы: взгляд изнутри
08 - Java. Java-классы: взгляд изнутри
 
06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системе06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системе
 
Linux commands
Linux commandsLinux commands
Linux commands
 
Bash scripting
 Bash scripting Bash scripting
Bash scripting
 
Стратегии выполнения тестов в Gradle
Стратегии выполнения тестов в GradleСтратегии выполнения тестов в Gradle
Стратегии выполнения тестов в Gradle
 
Google советы успешного поиска
 Google советы успешного поиска Google советы успешного поиска
Google советы успешного поиска
 
Amazon S3
Amazon S3 Amazon S3
Amazon S3
 
Sio2013 plto-pin
Sio2013 plto-pinSio2013 plto-pin
Sio2013 plto-pin
 
Gradle
GradleGradle
Gradle
 
10 - Java. Многопоточность в Java: основы
10 - Java. Многопоточность в Java: основы10 - Java. Многопоточность в Java: основы
10 - Java. Многопоточность в Java: основы
 
11 - Java. Многопоточность в Java: средства стандартной библиотеки
11 - Java. Многопоточность в Java:  средства стандартной библиотеки11 - Java. Многопоточность в Java:  средства стандартной библиотеки
11 - Java. Многопоточность в Java: средства стандартной библиотеки
 
Maven lifecycle
Maven lifecycleMaven lifecycle
Maven lifecycle
 
Разработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring FrameworkРазработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring Framework
 
Konstantin slisenko - Spring Framework
Konstantin slisenko - Spring FrameworkKonstantin slisenko - Spring Framework
Konstantin slisenko - Spring Framework
 
JMS-Java Message Service
JMS-Java Message ServiceJMS-Java Message Service
JMS-Java Message Service
 
66 - Spring. Spring и JSF
66 - Spring. Spring и JSF66 - Spring. Spring и JSF
66 - Spring. Spring и JSF
 
Date & Time in Java SE 8
Date & Time in Java SE 8Date & Time in Java SE 8
Date & Time in Java SE 8
 
Проблемы производительности open source библиотек
Проблемы производительности open source библиотекПроблемы производительности open source библиотек
Проблемы производительности open source библиотек
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
 

Apache Camel + Apache ActiveMQ persistence

  • 1. Apache Camel + Apache ActiveMQ persistence ilya.lapitan@gmail.com
  • 2. Camel + ActiveMQ persistence Для работы с ActiveMQ в Camel существует: activemq компонента она использует: jms компонету которая использует: JmsTemplate (Spring Framework)
  • 3. Camel + ActiveMQ persistence ActiveMQ компонента (Apache Camel) JMS компонента (Apache Camel) JMSTemplate класс (Spring Framework)
  • 4. Camel + ActiveMQ persistence Текущий стандарт JMS - JMS 2.0 JMS 2.0 входит в состав Java EE 7 В настоящий момент разрабатывается спецификация JMS 2.1
  • 5. Camel + ActiveMQ persistence Стандарт JMS 2.0 определяет два режима доставки сообщений: PERSISTENT - сообщение должно быть сохранено в постоянной хранилище NON_PERSISTENT - сообщение в постоянном хранилище не сохраняется
  • 6. Camel + ActiveMQ persistence Константные значения для режимов доставки определены в интерфейсе: javax.jms.DeliveryMode Константа Тип Значение javax.jms.DeliveryMode.NON_PERSISTENT int 1 javax.jms.DeliveryMode.PERSISTENT int 2
  • 7. Camel + ActiveMQ persistence По-умолчанию для режима доставки используется константа: javax.jms.DeliveryMode.PERSISTENT
  • 8. Camel + ActiveMQ persistence Отправляет Получает Сообщение (message) Производитель (producer) Сообщение (message) Потребитель (consumer) Брокер сообщений (message broker) ActiveMQ Non Persistent Persistent Non Persistent
  • 9. Camel + ActiveMQ persistence Брокер сообщений (message broker) ActiveMQ Non Persistent Persistent Non Persistent Постоянное хранилище (stable storage) файловая система, база данных Сохранение
  • 10. Camel + ActiveMQ persistence Брокер сообщений (message broker) ActiveMQ Non Persistent Persistent Non Persistent
  • 11. Camel + ActiveMQ persistence Брокер сообщений был остановлен: PERSISTENT сообщения будут доступны для потребителя после запуска брокера сообщений NON_PERSISTENT сообщения будут потеряны и не доступны для потребителя после запуска брокера сообщений
  • 12. Camel + ActiveMQ persistence Брокер сообщений (message broker) ActiveMQ Non Persistent Persistent Non Persistent Постоянное хранилище файловая система, база данных Чтение
  • 13. Camel + ActiveMQ persistence Отправляет Получает Сообщение (message) Производитель (producer) Сообщение (message) Потребитель (consumer) Брокер сообщений (message broker) ActiveMQ Persistent
  • 14. Camel + ActiveMQ persistence Camel позволяет использовать следующие опции для конфигурации режима доставки сообщений:
  • 15. Camel + ActiveMQ persistence deliveryPersistent - определяет, следует ли брокеру сообщений сохранять сообщение в постоянном хранилище. Тип: boolean По-умолчанию: true (PERSISTENT) Версия Camel: все версии
  • 16. Camel + ActiveMQ persistence deliveryMode - определяет, следует ли брокеру сообщений сохранять сообщение в постоянном хранилище. Тип: int, javax.jms.DeliveryMode По-умолчанию: null (PERSISTENT) Версия Camel: начиная с Camel 2.12
  • 17. Camel + ActiveMQ persistence deliveryMode - используется в паре с опцией explicitQosEnabled = true. Используется при конфигурации QOS параметров: -deliveryMode -priority -timeToLive
  • 18. Camel + ActiveMQ persistence explicitQosEnabled - определяет, следует ли использовать заданные QOS параметры при отправке сообщения. Тип: boolean По-умолчанию: false Версия Camel: все версии
  • 19. Camel + ActiveMQ persistence preserveMessageQos - определяет, следует ли игнорировать заданные QOS параметры для конечной точки (endpoint) и использовать параметры заданные в сообщении. Тип: boolean По-умолчанию: false Версия Camel: все версии
  • 20. Camel + ActiveMQ persistence Note: использование NON_PERSISTENT сообщений позволяют увеличить скорость обработки, т.к. нет необходимости в сохранении сообщений в постоянное хранилище. Однако вместе с этим увеличивается потребление оперативной памяти.
  • 21. Camel + ActiveMQ persistence Подробно: Camel ActiveMQ CamelJMS JMS 2.0 спецификация JMS 2.0 в рамках Java EE 7 Camel + ActiveMQ persistence