Infinispan
Поддерживаются как производитель, так и потребитель.
Этот компонент позволяет взаимодействовать с распределённой сетью данных / кэшем Infinispan с использованием протокола Hot Rod. Infinispan -- это чрезвычайно масштабируемая, высокодоступная платформа для хранения данных и сетей данных, написанная на Java.
Если вы используете Maven, вы должны добавить следующую зависимость в ваш pom.xml:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-infinispan</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>URI format
<span style="color: rgb(0,0,0);">infinispan://cacheName?[options]</span>
Производитель позволяет отправлять сообщения в удалённый кэш с использованием протокола HotRod. Потребитель позволяет прослушивать события из удалённого кэша с использованием протокола HotRod.
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
-
Обязательное поле - имя кэша для использования. Используйте current, чтобы использовать имя существующего кэша из текущего настроенного менеджера кэшей. Или используйте default для имени менеджера кэшей по умолчанию.
-
По умолчанию:
-
Тип: String
Custom Listener
-
Возвращает используемый пользовательский слушатель (listener), если он предоставлен.
-
По умолчанию:
-
Тип: InfinispanRemoteCustomListener
Event Types
-
Тип: Указывает набор типов событий для регистрации потребителем (consumer). Несколько событий могут быть разделены запятыми. Возможные типы событий: CLIENT_CACHE_ENTRY_CREATED, CLIENT_CACHE_ENTRY_MODIFIED, CLIENT_CACHE_ENTRY_REMOVED, CLIENT_CACHE_ENTRY_EXPIRED, CLIENT_CACHE_FAILOVER.
-
По умолчанию:
-
Тип: String
Hosts
-
Указывает хост кэша на экземпляре Infinispan. Несколько хостов могут быть разделены точкой с запятой. Указывает хост кэша на экземпляре Infinispan. Несколько хостов могут быть разделены точкой с запятой.
-
По умолчанию:
-
Тип: String
Query Builder
-
Тип: Указывает построитель запросов (query builder).
-
По умолчанию:
-
Тип: InfinispanQueryBuilder
Secure
-
Определяет, подключаемся ли мы к защищённому экземпляру Infinispan.
-
По умолчанию: false
-
Тип: boolean
Component security properties
Password
-
Определяет пароль для доступа к экземпляру Infinispan
-
По умолчанию:
-
Тип: String
Sasl Mechanism
-
Определяет механизм SASL для доступа к экземпляру Infinispan.
-
По умолчанию:
-
Тип: String
Security Realm
-
Тип: Определяет область безопасности (security realm) для доступа к экземпляру Infinispan.
-
По умолчанию:
-
Тип: String
Security Server Name
-
Определяет имя сервера безопасности для доступа к экземпляру Infinispan.
-
По умолчанию:
-
Тип: String
Username
-
Тип: Определяет имя пользователя для доступа к экземпляру Infinispan.
-
По умолчанию:
-
Тип: String
Component advanced properties
Bridge Error Handler
-
Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.
Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию: false
-
Тип: boolean
Cache Container
-
Автоматически подключаемый параметр. Указывает контейнер кэша для подключения.
-
По умолчанию:
-
Тип: RemoteCacheManager
Cache Container Configuration
-
Автоматически подключаемый параметр. Конфигурация CacheContainer. Используется, если cacheContainer не определён.
-
По умолчанию:
-
Тип: Configuration
Configuration Properties
-
Тип: Параметры, характерные для конкретной реализации CacheManager.
-
По умолчанию:
-
Тип: Map
Configuration Uri
-
URI, характерный для конкретной реализации CacheManager.
-
По умолчанию:
-
Тип: String
Exception Handler
-
Тип: Позволяет потребителю использовать собственный ExceptionHandler.
Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию:
-
Тип: ExceptionHandler
Exchange Pattern
-
Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).
Возможные значения:
-
InOnly
-
InOut
-
-
По умолчанию:
-
Тип: ExchangePattern
Flags
-
Тип: Список флагов org.infinispan.client.hotrod.Flag, разделённых запятыми, которые по умолчанию применяются к каждому вызову кэша.
-
По умолчанию:
-
Тип: String
Remapping Function
-
Установите конкретную функцию пересопоставления (remappingFunction) для использования в операции compute.
-
По умолчанию:
-
Тип: BiFunction
Result Header
-
Тип: Сохраняет результат операции в заголовке вместо тела сообщения. По умолчанию resultHeader == null, и результат запроса сохраняется в теле сообщения, при этом любое существующее содержимое тела сообщения удаляется. Если resultHeader задан, его значение используется как имя заголовка для сохранения результата запроса, а исходное тело сообщения сохраняется. Это значение может быть переопределено входящим заголовком с именем: CamelInfinispanOperationResultHeader.
-
По умолчанию:
-
Тип: String