Hazelcast SEDA
Поддерживаются как производитель, так и потребитель
Компонент Hazelcast SEDA является одним из компонентов Camel Hazelcast, который позволяет вам получить доступ к BlockingQueue в Hazelcast. Компонент SEDA отличается от остальных предоставляемых компонентов. Он реализует рабочую очередь (work-queue) для поддержки асинхронных архитектур SEDA, аналогично основному компоненту «SEDA».
Configuring Options
Компоненты настраиваются на двух отдельных уровнях:
-
component level
-
edpoint level
Configuring Component Options
На уровне компонента задаются основные и общие настройки, которые впоследствии наследуются endpoints. Это самый высокий уровень конфигурации.
Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевых подключений и т. д.
Некоторые компоненты имеют всего несколько параметров, в то время как у других их может быть много. Поскольку компоненты обычно имеют предварительно настроенные значения по умолчанию, которые используются в большинстве случаев, вам может понадобиться настроить только несколько параметров компонента или вообще ничего не настраивать.
Компоненты можно настроить с использованием:
-
Component DSL.
-
Конфигурационного файла (application.properties, *.yaml files, etc).
-
Напрямую в Java code.
Configuring Endpoint Options
Обычно больше времени уходит на настройку endpoints, так как они обладают множеством параметров. Эти параметры позволяют настроить поведение endpoint в соответствии с вашими потребностями. Кроме того, параметры делятся на категории в зависимости от того, используется ли endpoint как потребитель (from), как производитель (to) или в обеих ролях.
Настройка endpoints чаще всего выполняется непосредственно в URI endpoint в виде параметров пути и запроса. Также вы можете использовать Endpoint DSL и DataFormat DSL как типобезопасный способ настройки endpoints и форматов данных в Java.
Хорошей практикой при настройке параметров является использование Property Placeholders.
Property placeholders предоставляют несколько преимуществ:
-
Помогают избежать использования жестко закодированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.
-
Позволяют вынести конфигурацию за пределы кода.
-
Делают код более гибким и удобным для повторного использования.
Component properties
Cache Name
-
Должно быть указано имя кеша.
-
По умолчанию:
-
Тип: String
Default Operation
-
Если заголовок операции не указан, будет применена операция по умолчанию.
Возможные значения:
-
put
-
delete
-
get
-
update
-
query
-
getAll
-
clear
-
putIfAbsent
-
addAll
-
removeAll
-
retainAll
-
evict
-
evictAll
-
valueCount
-
containsKey
-
containsValue
-
getKeys
-
removeValue
-
increment
-
decrement
-
setValue
-
destroy
-
compareAndSet
-
getAndAdd
-
add
-
offer
-
peek
-
poll
-
remainingCapacity
-
drainTo
-
removeIf
-
take
-
publish
-
readOnceHead
-
readOnceTail
-
capacity
-
-
По умолчанию:
-
Тип: HazelcastOperation
Hazelcast Config Uri
-
Тип: Файл конфигурации Hazelcast.
-
По умолчанию:
-
Тип: String
Hazelcast Instance
-
Ссылка на экземпляр Hazelcast, которая может использоваться для endpoint Hazelcast.
-
По умолчанию:
-
Тип: HazelcastInstance
Hazelcast Instance Name
-
Тип: Имя ссылки на экземпляр Hazelcast, которое можно использовать для endpoint Hazelcast. Если ссылка на экземпляр не указана, Camel использует экземпляр Hazelcast по умолчанию из Camel-Hazelcast.
-
По умолчанию:
-
Тип: String
Concurrent Consumers
-
Использe.ncz несколько потребителей, работающих одновременно и выполняющих опрос из очереди SEDA.
-
По умолчанию: 1
-
Тип: int
On Error Delay
-
Количество миллисекунд, прежде чем потребитель продолжит опрос после возникновения ошибки..
-
По умолчанию: 1000
-
Тип: int
Poll Timeout
-
Тайм-аут, используемый при потреблении из очереди SEDA. Когда происходит тайм-аут, потребитель может проверить, разрешено ли ему продолжать работу. Установка меньшего значения позволяет потребителю быстрее реагировать на завершение работы.
-
По умолчанию: 1000
-
Тип: int
Transacted
-
Если установлено значение true, то потребитель работает в режиме транзакции, при котором сообщения в очереди SEDA будут удаляться только в случае успешного завершения транзакции, что происходит после завершения обработки.
-
По умолчанию: false
-
Тип: boolean
Transfer Exchange
-
Если установлено значение true, весь Exchange будет передан. Если в заголовке или теле содержатся не сериализуемые объекты, они будут проигнорированы.
-
По умолчанию: false
-
Тип: boolean
Component advanced properties
Bridge Error Handler
-
Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.
Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию: false
-
Тип: boolean
Exception Handler
-
Позволяет потребителю использовать собственный ExceptionHandler.
Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию:
-
Тип: ExceptionHandler
Exchange Pattern
-
Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).
Возможные значения:
-
InOnly
-
InOut
-
-
По умолчанию:
-
Тип: ExchangePattern