2. Camel + ActiveMQ persistence
Для работы с ActiveMQ в Camel существует:
activemq компонента
она использует:
jms компонету
которая использует:
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