Consul

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

Компонент Consul используется для интеграции вашего приложения с Hashicorp Consul.

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

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-consul</artifactId>
        <version>${camel-version}</version>
    </dependency>

URI format

<span style="color: rgb(0,0,0);">consul://domain?[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

Api Endpoint

  • Обязательно API endpoint.

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

  • Тип: String

  • Тип: Block Seconds

  • Время ожидания события наблюдения в секундах, по умолчанию 10 секунд.

  • 10

  • Integer

Connect Timeout

  • Connect timeout (время ожидания соединения) для OkHttpClient.

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

  • Тип: Duration

  • Тип: Consul Client

  • Ссылка на объект org.kiwiproject.consul.Consul в реестре.

  • Consul

First Index

  • Начальный индекс для наблюдения, по умолчанию 0.

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

  • Тип: BigInteger

Key

  • Ключ по умолчанию. Может быть переопределён с помощью CamelConsulKey.

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

  • Тип: String

  • Тип: Ping Instance

  • Устанавливает, будет ли AgentClient выполнять ping перед возвратом объекта Consul.

  • true

  • boolean

Read Timeout

  • Тайм-аут на чтение для OkHttpClient.

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

  • Тип: Duration

  • Тип: Recursive

  • Рекурсивный режим наблюдения, по умолчанию false.

  • false

  • boolean

Tags

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

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

  • Тип: String

  • Тип: Url

  • URL адрес Consul.

  • String

Write Timeout

  • Тайм-аут записи для OkHttpClient.

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

  • Тип: Duration

Component security properties

  • Тип: Acl Token

  • Устанавливает токен ACL, который будет использоваться с Consul.

  • String

Password

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

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

  • Тип: String

  • Тип: Ssl Context Parameters

  • SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance.

    Конфигурация SSL через объект org.apache.camel.support.jsse.SSLContextParameters.

  • SSLContextParameters

User Name

  • Устанавливает имя пользователя, которое будет использоваться для базовой аутентификации.

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

  • Тип: 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

Consistency Mode

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

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

    • DEFAULT

    • STALE

    • CONSISTENT

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

  • Тип: ConsistencyMode

Datacenter

  • Центр обработки данных.

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

  • Тип: String

  • Тип: Exception Handler

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

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

  • ExceptionHandler

Exchange Pattern

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

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

    • InOnly

    • InOut

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

  • Тип: ExchangePattern

  • Тип: Near Node

  • Near Node для выполнения запросов.

  • String

Node Meta

  • Node Meta для выполнения запросов.

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

  • Тип: List