JCache

Поддерживаются как производитель, так и потребитель

Компонент JCache позволяет выполнять операции кэширования, используя JSR107/JCache в качестве реализации кэша.

URI Format

<span style="color: rgb(0,0,0);">jcache:cacheName[?options]</span>

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 Configuration

  • Конфигурация для кэша.

  • По умолчанию:

  • Тип: Configuration

Cache Configuration Properties

  • Свойства для настройки jcache.

  • По умолчанию:

  • Тип: Map

Cache Name

  • Тип: Обязательный параметр - Имя кэша.

  • По умолчанию:

  • Тип: String

Caching Provider

  • Полное квалифицированное имя класса javax.cache.spi.CachingProvider.

  • По умолчанию:

  • Тип: String

Configuration Uri

  • Тип: URI, характерный для конкретной реализации CacheManager.

  • По умолчанию:

  • Тип: String

Filtered Events

  • События, которые потребитель должен фильтровать (несколько событий могут быть разделены запятыми). Если используется опция filteredEvents, то eventFilters будет проигнорирована.

    Возможные значения:

    • CREATED

    • UPDATED

    • REMOVED

    • EXPIRED

  • По умолчанию:

  • Тип: String

Management Enabled

  • Тип: Определяет, включён ли сбор данных для управления.

  • По умолчанию: false

  • Тип: boolean

Old Value Required

  • Определяет, требуется ли старое значение для событий.

  • По умолчанию: false

  • Тип: boolean

Read Through

  • Определяет, следует ли использовать сквозное чтение (read-through caching).

  • По умолчанию: false

  • Тип: boolean

Statistics Enabled

  • Определяет, включён ли сбор статистики.

  • По умолчанию: false

  • Тип: boolean

Store By Value

  • Определяет, должен ли кэш использовать семантику хранения по значению (store-by-value) или по ссылке (store-by-reference).

  • По умолчанию: true

  • Тип: boolean

Synchronous

  • Определяет, должен ли слушатель событий блокировать поток, вызывающий событие.

  • По умолчанию: false

  • Тип: boolean

Write Through

  • Определяет, следует ли использовать сквозную запись (write-through caching).

  • По умолчанию: 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

Cache Loader Factory

  • CacheLoader factory.

  • По умолчанию:

  • Тип: Factory

Cache Writer Factory

  • CacheWriter factory.

  • По умолчанию:

  • Тип: Factory

Create Cache If Not Exists

  • Тип: Укажите, нужно ли создавать кэш, если его не существует или его нельзя предварительно настроить.

  • По умолчанию: true

  • Тип: boolean

Event Filters

  • Фильтр CacheEntryEventFilter. Если используется опция eventFilters, то filteredEvents будет проигнорирован.

  • По умолчанию:

  • Тип: List

Exception Handler

  • Позволяет потребителю использовать собственный ExceptionHandler.

    Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.

  • По умолчанию:

  • Тип: ExceptionHandler

Exchange Pattern

  • Тип: Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).

    Возможные значения:

    • InOnly

    • InOut

  • По умолчанию:

  • Тип: ExchangePattern

Expiry Policy Factory

  • ExpiryPolicy factory.

  • По умолчанию:

  • Тип: Factory

Lookup Providers

  • Тип: Настройка, должен ли camel-cache пытаться найти реализации API jcache в средах выполнения, таких как OSGi.

  • По умолчанию: false

  • Тип: boolean