apache camel + apache activemq persistence

21
Apache Camel + Apache ActiveMQ persistence [email protected]

Upload: ilia-lapitan

Post on 05-Dec-2014

374 views

Category:

Technology


0 download

DESCRIPTION

Persistence configuration.

TRANSCRIPT

Page 1: Apache Camel + Apache ActiveMQ persistence

Apache Camel + Apache ActiveMQpersistence

[email protected]

Page 2: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

Для работы с ActiveMQ в Camel существует:activemq компонента

она использует:jms компонету

которая использует:JmsTemplate (Spring Framework)

Page 3: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

ActiveMQ компонента(Apache Camel)

JMS компонента(Apache Camel)

JMSTemplate класс(Spring Framework)

Page 4: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

Текущий стандарт JMS - JMS 2.0 JMS 2.0 входит в состав Java EE 7

В настоящий момент разрабатывается спецификация JMS 2.1

Page 5: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

Стандарт JMS 2.0 определяет два режима доставки сообщений:

PERSISTENT - сообщение должно быть сохранено в постоянной хранилище

NON_PERSISTENT - сообщение в постоянном хранилище не сохраняется

Page 8: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

Сообщение(message)

Производитель(producer)

Потребитель(consumer)

Сообщение(message)

Брокер сообщений(message broker)

ActiveMQ

Non Persistent

Persistent

Non Persistent

Отправляет Получает

Page 9: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistenceБрокер сообщений(message broker)

ActiveMQ

Non Persistent

Persistent

Non Persistent

Постоянное хранилище

(stable storage)

файловая система,база данных

Сохранение

Page 10: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistenceБрокер сообщений(message broker)

ActiveMQ

Non Persistent

Persistent

Non Persistent

Page 11: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

Брокер сообщений был остановлен:PERSISTENT сообщения будут доступны для потребителя после запуска брокера сообщенийNON_PERSISTENT сообщения будут потеряны и не доступны для потребителя после запуска брокера сообщений

Page 12: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistenceБрокер сообщений(message broker)

ActiveMQ

Non Persistent

Persistent

Non Persistent

Постоянное хранилище

файловая система,база данных

Чтение

Page 13: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

Сообщение(message)

Производитель(producer)

Потребитель(consumer)

Сообщение(message)

Брокер сообщений(message broker)

ActiveMQ

PersistentОтправляет Получает

Page 14: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

Camel позволяет использовать следующие опции для конфигурации режима доставки сообщений:

Page 15: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

deliveryPersistent - определяет, следует ли брокеру сообщений сохранять сообщение в постоянном хранилище.Тип: booleanПо-умолчанию: true (PERSISTENT)Версия Camel: все версии

Page 16: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

deliveryMode - определяет, следует ли брокеру сообщений сохранять сообщение в постоянном хранилище.Тип: int, javax.jms.DeliveryModeПо-умолчанию: null (PERSISTENT)Версия Camel: начиная с Camel 2.12

Page 17: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

deliveryMode - используется в паре с опцией explicitQosEnabled = true.Используется при конфигурации QOS параметров:-deliveryMode-priority-timeToLive

Page 18: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

explicitQosEnabled - определяет, следует ли использовать заданные QOS параметры при отправке сообщения.Тип: booleanПо-умолчанию: falseВерсия Camel: все версии

Page 19: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

preserveMessageQos - определяет, следует ли игнорировать заданные QOS параметры для конечной точки (endpoint) и использовать параметры заданные в сообщении.Тип: booleanПо-умолчанию: falseВерсия Camel: все версии

Page 20: Apache Camel + Apache ActiveMQ persistence

Camel + ActiveMQ persistence

Note: использование NON_PERSISTENT сообщений позволяют увеличить скорость обработки, т.к. нет необходимости в сохранении сообщений в постоянное хранилище. Однако вместе с этим увеличивается потребление оперативной памяти.