Etcd v3

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

Компонент Etcd v3 позволяет работать с Etcd -- распределенным надежным хранилищем ключей и значений.

Пользователям Maven необходимо добавить следующую зависимость для pom.xmlэтого компонента:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-etcd3</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);">etcd3:path[?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

Endpoints

  • Настраивает endpoints сервера etcd с использованием IPNameResolver. Несколько endpoints можно разделять запятой.

  • По умолчанию: http://localhost:2379 (opens in a new tab)

  • Тип: String

Key Charset

  • Настраивает кодировку, используемую для ключей.

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

  • Тип: String

Namespace

  • Настраивает пространство имен используемых ключей. / будет рассматриваться как отсутствие пространства имен.

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

  • Тип: String

Path

  • Путь, на который ссылается endpoint.

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

  • Тип: String

Prefix

  • Тип: Выполняет действие для всех пар ключ-значение, у которых ключ начинается с указанного пути.

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

  • Тип: boolean

Service Path

  • Путь поиска service discovery.

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

  • Тип: String

Component security properties

Password

  • Настраивает пароль аутентификации etcd.

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

  • Тип: String

Ssl Context

  • Задает параметры SSL/TLS вместо системных настроек.

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

  • Тип: SslContext

User Name

  • Тип: Настраивает пользователя аутентификации etcd.

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

  • Тип: String

Component advanced properties

Auth Headers

  • Определяет заголовки для добавления в запрос аутентификации.

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

  • Тип: Map

Authority

  • Тип: Указывает параметры аутентификации для соединений с серверами.

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

  • Тип: String

Bridge Error Handler

  • Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.

    Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.

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

  • Тип: boolean

Connection Timeout

  • Настраивает таймаут соединения.

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

  • Тип: Duration

Exception Handler

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

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

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

  • Тип: ExceptionHandler

Exchange Pattern

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

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

    • InOnly

    • InOut

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

  • Тип: ExchangePattern

From Index

  • Индекс, с которого следует начинать просмотр.

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

  • Тип: long

Headers

  • Настройте заголовки, которые будут добавлены к заголовкам HTTP-запроса.

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

  • Тип: Map

Keep Alive Time

  • Настройте интервал для keepalive в gRPC. Текущий минимальный интервал, разрешённый gRPC, составляет 10 секунд.

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

  • Тип: Duration

Load Balancer Policy

  • Настраивает политику балансировки нагрузки для etcd.

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

  • Тип: String

Max Inbound Message Size

  • Настраивает максимальный размер сообщения, разрешённого для одного фрейма gRPC.

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

  • Тип: Integer

Retry Delay

  • Тип: Настраивает задержку между попытками в миллисекундах.

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

  • Тип: long

Retry Max Delay

  • Настраивает максимальную задержку между попытками восстановления в миллисекундах.

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

  • Тип: long

Retry Max Duration

  • Настраивает максимальную продолжительность попыток повторного выполнения.

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

  • Тип: Duration

Ssl Context

  • Настраивает контекст SSL/TLS для использования вместо системного по умолчанию.

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

  • Тип: SslContext