Couchbase
Поддерживаются как производитель, так и потребитель
Компонент couchbase: позволяет рассматривать экземпляры Couchbase (opens in a new tab) как производителя или потребителя сообщений.
Пользователям Maven необходимо добавить следующую зависимость для pom.xmlэтого компонента:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-couchbase</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>Формат URI
couchbase:url
Настройка параметров
Компоненты Camel настраиваются на двух отдельных уровнях:
-
уровень компонентов
-
уровень конечной точки
Настройка параметров компонента
На уровне компонентов задаются общие и общие конфигурации, которые затем наследуются конечными точками. Это самый высокий уровень конфигурации.
Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевого подключения и т. д.
У некоторых компонентов всего несколько параметров, а у других -- много. Поскольку компоненты обычно имеют предустановленные значения по умолчанию, которые широко используются, зачастую вам может потребоваться настроить лишь несколько параметров компонента, а то и вовсе ни одного.
Вы можете настроить компоненты, используя:
-
Компонент DSL (opens in a new tab) .
-
в файле конфигурации (
application.propertiesфайлы*.yaml, и т.д.). -
непосредственно в коде Java.
Настройка параметров конечной точки
Настройка конечных точек обычно занимает больше времени, поскольку у них есть множество параметров. Эти параметры помогают вам настроить функции конечной точки. Параметры также классифицируются по тому, используется ли конечная точка как потребитель ( от ), как производитель ( от ) или и то, и другое.
Конечные точки чаще всего настраиваются непосредственно в URI конечной точки в виде параметров пути и запроса . Вы также можете использовать Endpoint DSL (opens in a new tab) и DataFormat DSL (opens in a new tab) в качестве типобезопасного способа настройки конечных точек и форматов данных в Java.
Хорошей практикой при настройке параметров является использование заполнителей свойств (opens in a new tab) .
Заполнители свойств обеспечивают несколько преимуществ:
-
Они помогают предотвратить использование жестко запрограммированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.
-
Они позволяют вынести конфигурацию за пределы кода.
-
Они помогают коду стать более гибким и пригодным для повторного использования.
В следующих двух разделах перечислены все параметры, сначала для компонента, а затем для конечной точки.
Варианты компонентов
Компонент Couchbase поддерживает 5 опций, которые перечислены ниже.
bridgeErrorHandler (потребитель)
-
Позволяет подключить потребителя к обработчику ошибок маршрутизации Camel. Это означает, что любые исключения (если это возможно), возникающие при попытке потребителя Camel получить входящие сообщения или что-то подобное, теперь будут обрабатываться как сообщение и обрабатываться обработчиком ошибок маршрутизации. Важно: это возможно только в том случае, если сторонний компонент позволяет Camel получать оповещения о возникновении исключения. Некоторые компоненты обрабатывают это только внутренне, поэтому использование bridgeErrorHandler невозможно. В других ситуациях мы можем улучшить компонент Camel для подключения к сторонним компонентам и сделать это возможным в будущих выпусках. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут зарегистрированы на уровне WARN или ERROR и проигнорированы.
-
По умолчанию: false
-
Тип: boolean
lazyStartProducer (производитель)
-
Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
По умолчанию: false
-
Тип: boolean
autowiredEnabled (расширенный)
-
Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.
-
По умолчанию: true
-
Тип: boolean
healthCheckConsumerEnabled (здоровье)
-
Используется для включения или отключения всех проверок работоспособности потребителя из этого компонента.
-
По умолчанию: true
-
Тип: boolean
healthCheckProducerEnabled (здоровье)
-
Используется для включения или отключения всех проверок работоспособности, основанных на производителях, в этом компоненте. Примечание: Camel по умолчанию отключил все проверки работоспособности, основанные на производителях. Вы можете включить проверки, основанные на производителях, глобально, установив параметр camel.health.producersEnabled=true.
-
По умолчанию: true
-
Тип: boolean
Параметры конечной точки
Конечная точка Couchbase настраивается с использованием синтаксиса URI:
couchbase:<strong style="text-align: left;">protocol</strong>://<span><strong style="text-align: left;">hostname</strong></span>:<strong style="text-align: left;">port</strong><span style="color: rgb(51,51,51);"><span> </span></span>
Со следующими параметрами пути и запроса :
Параметры пути (3 параметра)
protocol (общий)
-
Обязательно Протокол для использования.
-
По умолчанию:
-
Тип: String
-
Тип: hostname (общее)
-
Обязательно Имя хоста для использования.
-
String
port (общий)
-
Номер порта для использования.
-
По умолчанию: 8091
-
Тип: инт
Параметры запроса (45 параметров)
bucket (обычное)
-
Требуется Ведро для использования.
-
По умолчанию:
-
Тип: String
-
Тип: collection (общая)
-
Коллекция для использования.
-
String
key (общий)
-
Ключ к использованию.
-
По умолчанию:
-
Тип: String
-
Тип: scope (общая)
-
Область применения.
-
String
consumerProcessedStrategy (потребитель)
-
Определите, какую стратегию обработки данных потребителя следует использовать.
-
По умолчанию: никто
-
Тип: String
descending (потребительский)
-
Определите, является ли эта операция нисходящей или нет.
-
По умолчанию: false
-
Тип: boolean
designDocumentName (потребитель)
-
Название проектного документа, которое будет использоваться.
-
По умолчанию:
-
Тип: String
-
Тип: fullDocument (потребитель)
-
Если true, потребитель вернет полный документ вместо данных, определенных в представлении.
-
false
-
boolean
limit (потребитель)
-
Предел выходных данных для использования.
-
По умолчанию: -1
-
Тип: инт
rangeEndKey (потребитель)
-
Определите диапазон для конечного ключа.
-
По умолчанию:
-
Тип: String
-
Тип: rangeStartKey (потребитель)
-
Определите диапазон для ключа запуска.
-
String
sendEmptyMessageWhenIdle (потребитель)
-
Если опрашивающий потребитель не опросил ни одного файла, вы можете включить эту опцию, чтобы вместо этого отправить пустое сообщение (без тела).
-
По умолчанию: false
-
Тип: boolean
skip (потребитель)
-
Определите, какой пропуск использовать.
-
По умолчанию: -1
-
Тип: инт
viewName (потребитель)
-
Имя представления, которое будет использоваться.
-
По умолчанию: пивоварня_пиво
-
Тип: String
bridgeErrorHandler (потребитель (расширенный))
-
Позволяет подключить потребителя к обработчику ошибок маршрутизации Camel. Это означает, что любые исключения (если это возможно), возникающие при попытке потребителя Camel получить входящие сообщения или что-то подобное, теперь будут обрабатываться как сообщение и обрабатываться обработчиком ошибок маршрутизации. Важно: это возможно только в том случае, если сторонний компонент позволяет Camel получать оповещения о возникновении исключения. Некоторые компоненты обрабатывают это только внутренне, поэтому использование bridgeErrorHandler невозможно. В других ситуациях мы можем улучшить компонент Camel для подключения к сторонним компонентам и сделать это возможным в будущих выпусках. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут зарегистрированы на уровне WARN или ERROR и проигнорированы.
-
По умолчанию: false
-
Тип: boolean
exceptionHandler (потребитель (расширенный))
-
Чтобы разрешить потребителю использовать собственный обработчик исключений (ExceptionHandler). Обратите внимание, что если опция bridgeErrorHandler включена, то эта опция не используется. По умолчанию потребитель обрабатывает исключения, которые регистрируются на уровне WARN или ERROR и игнорируются.
-
По умолчанию:
-
Тип: ExceptionHandler
-
Тип: exchangePattern (потребитель (расширенный))
-
Устанавливает шаблон обмена, когда потребитель создает обмен.
Значения перечисления:
-
InOnly
-
ВходВыход
-
-
ExchangePattern
pollStrategy (потребитель (продвинутый))
-
Подключаемый org.apache.camel.PollingConsumerPollingStrategy, позволяющий вам предоставить собственную реализацию для управления обработкой ошибок, которые обычно возникают во время операции опроса до создания Exchange и маршрутизации в Camel.
-
По умолчанию:
-
Тип: ОпросСтратегияПотребителяОпроса
-
Тип: autoStartIdForInserts (продюсер)
-
Определите, нужен ли нам идентификатор автозапуска при выполнении операции вставки.
-
false
-
boolean
operation (производитель)
-
Операция, которую предстоит сделать.
-
По умолчанию: CCB_PUT
-
Тип: String
persistTo (производитель)
-
Где сохраString данные.
-
По умолчанию: 0
-
Тип: инт
producerRetryAttempts (производитель)
-
Определите количество повторных попыток.
-
По умолчанию: 2
-
Тип: инт
producerRetryPause (производитель)
-
Определите паузу между различными попытками.
-
По умолчанию: 5000
-
Тип: инт
replicateTo (производитель)
-
Где копировать данные.
-
По умолчанию: 0
-
Тип: инт
startIdForInsertsFrom (продюсер)
-
Определим начальный идентификатор, в который мы будем вставлять данные.
-
По умолчанию:
-
Тип: Long
-
Тип: lazyStartProducer (производитель (расширенный))
-
Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
false
-
boolean
additionalHosts (расширенный)
-
Дополнительные хосты.
-
По умолчанию:
-
Тип: String
-
Тип: connectTimeout (расширенный)
-
Определите время ожидания соединения в миллисекундах.
-
30000
-
Long
queryTimeout (расширенный)
-
Определите время ожидания операции в миллисекундах.
-
По умолчанию: 2500
-
Тип: Long
backoffErrorThreshold (планировщик)
-
Число последующих ошибочных опросов (неудачных из-за какой-то ошибки), которые должны произойти до того, как сработает backoffMultipler.
-
По умолчанию:
-
Тип: инт
-
Тип: backoffIdleThreshold (планировщик)
-
Число последующих опросов бездействия, которые должны произойти до того, как должен сработать backoffMultipler.
-
инт
backoffMultiplier (планировщик)
-
Чтобы разрешить запланированному потребителю опроса отложить опрос, если было несколько последовательных простоев/ошибок подряд. Множитель в этом случае определяет количество опросов, которые будут пропущены до следующей попытки. При использовании этого параметра необходимо также настроить значения backoffIdleThreshold и/или backoffErrorThreshold.
-
По умолчанию:
-
Тип: инт
-
Тип: delay (планировщик)
-
Миллисекунды до следующего опроса.
-
500
-
Long
greedy (планировщик)
-
Если жадный режим включен, то ScheduledPollConsumer запустится немедленно снова, если в предыдущем запуске было опрошено 1 или более сообщений.
-
По умолчанию: false
-
Тип: boolean
initialDelay (планировщик)
-
Миллисекунды до начала первого опроса.
-
По умолчанию: 1000
-
Тип: Long
repeatCount (планировщик)
-
Задаёт максимальное количество срабатываний. Если установить значение 1, планировщик сработает только один раз. Если установить значение 5, планировщик сработает только пять раз. Нулевое или отрицательное значение означает, что планировщик будет срабатывать постоянно.
-
По умолчанию: 0
-
Тип: Long
runLoggingLevel (планировщик)
-
Потребитель регистрирует строку журнала начала/завершения опроса. Эта опция позволяет настроить уровень ведения журнала.
Значения перечисления:
-
СЛЕД
-
ОТЛАЖИВАТЬ
-
ИНФОРМАЦИЯ
-
ПРЕДУПРЕЖДАТЬ
-
ОШИБКА
-
ВЫКЛЮЧЕННЫЙ
-
-
По умолчанию: СЛЕД
-
Тип: LoggingLevel
scheduledExecutorService (планировщик)
-
Позволяет настроить пользовательский/общий пул потоков для использования потребителем. По умолчанию каждый потребитель имеет собственный однопоточный пул потоков.
-
По умолчанию:
-
Тип: ScheduledExecutorService
-
Тип: scheduler (планировщик)
-
Чтобы использовать планировщик cron из компонента Camel-Spring или Camel-Quartz, используйте значение Spring или Quartz для встроенного планировщика.
-
никто
-
Объект
schedulerProperties (планировщик)
-
Для настройки дополнительных свойств при использовании пользовательского планировщика или любого планировщика на базе Quartz или Spring. Это многозначный параметр с префиксом: scheduler.
-
По умолчанию:
-
Тип: Map
-
Тип: startScheduler (планировщик)
-
Должен ли планировщик запускаться автоматически.
-
true
-
boolean
timeUnit (планировщик)
-
Единица времени для initialDelay и параметров задержки.
Значения перечисления:
-
-
NANOSECONDS
-
MICROSECONDS
-
MILLISECONDS
-
SECONDS
-
MINUTES
-
HOURS
-
DAYS
-
-
-
По умолчанию: - NANOSECONDS
-
Тип: Единица времени
useFixedDelay (планировщик)
-
Управляет использованием фиксированной задержки или фиксированной частоты. Подробнее см. ScheduledExecutorService в JDK.
-
По умолчанию: true
-
Тип: boolean
password (безопасность)
-
Пароль для использования.
-
По умолчанию:
-
Тип: String
-
Тип: username (безопасность)
-
Имя пользователя, которое будет использоваться.
-
String
Заголовки сообщений
Компонент Couchbase поддерживает 6 заголовков сообщений, которые перечислены ниже:
CCB_KEY (потребитель)
Постоянный:HEADER_KEY (opens in a new tab)
-
Ключ.
-
По умолчанию:
-
Тип: String
-
Тип: CCB_ID (общий)
Постоянный:HEADER_ID (opens in a new tab)
-
Идентификатор документа.
-
String
CCB_TTL (производитель)
Постоянный:HEADER_TTL (opens in a new tab)
-
Срок действия документа в секундах.
-
По умолчанию:
-
Тип: String
-
Тип: CCB_DDN (потребитель)
-
Название проектного документа.
-
String
CCB_VN (потребитель)
Постоянный:HEADER_VIEWNAME (opens in a new tab)
-
Имя представления.
-
По умолчанию:
-
Тип: String
-
Тип: CamelCqlResumeQuery (потребитель)
Постоянный:COUCHBASE_RESUME_ACTION (opens in a new tab)
-
Действие возобновления, которое необходимо выполString при возобновлении.
-
String
Совместимость с Couchbase SDK
Использование коллекций и областей поддерживается только для Couchbase Server 7.0 и более поздних версий.
В настоящее время этот компонент использует Java SDK 3.x, поэтому он может быть несовместим со старыми серверами Couchbase. Подробности смотрите на странице совместимости. (opens in a new tab)
-
Значение, ранее интерпретируемое как имя контейнера, теперь интерпретируется как имя пользователя. Имя пользователя должно соответствовать пользователю, определённому в кластере, к которому осуществляется доступ.
-
Значение, которое ранее интерпретировалось как пароль контейнера, теперь интерпретируется как пароль определенного пользователя.
Автоматическая настройка Spring Boot
При использовании Couchbase с Spring Boot обязательно используйте следующую зависимость Maven для поддержки автоматической настройки:
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-couchbase-starter</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>Компонент поддерживает 6 опций, которые перечислены ниже.
camel.component.couchbase.autowired-enabled
-
Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.
-
По умолчанию: true
-
Тип: boolean
camel.component.couchbase.bridge-error-handler
-
Позволяет подключить потребителя к обработчику ошибок маршрутизации Camel. Это означает, что любые исключения (если это возможно), возникающие при попытке потребителя Camel получить входящие сообщения или что-то подобное, теперь будут обрабатываться как сообщение и обрабатываться обработчиком ошибок маршрутизации. Важно: это возможно только в том случае, если сторонний компонент позволяет Camel получать оповещения о возникновении исключения. Некоторые компоненты обрабатывают это только внутренне, поэтому использование bridgeErrorHandler невозможно. В других ситуациях мы можем улучшить компонент Camel для подключения к сторонним компонентам и сделать это возможным в будущих выпусках. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут зарегистрированы на уровне WARN или ERROR и проигнорированы.
-
По умолчанию: false
-
Тип: boolean
camel.component.couchbase.enabled
-
Включить ли автоматическую настройку компонента Couchbase. По умолчанию эта функция включена.
-
По умолчанию:
-
Тип: boolean
-
Тип: camel.component.couchbase.health-check-consumer-enabled
-
Используется для включения или отключения всех проверок работоспособности потребителя из этого компонента.
-
true
-
boolean
camel.component.couchbase.health-check-producer-enabled
-
Используется для включения или отключения всех проверок работоспособности, основанных на производителях, в этом компоненте. Примечание: Camel по умолчанию отключил все проверки работоспособности, основанные на производителях. Вы можете включить проверки, основанные на производителях, глобально, установив параметр camel.health.producersEnabled=true.
-
По умолчанию: true
-
Тип: boolean
camel.component.couchbase.lazy-start-producer
-
Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
По умолчанию: false
-
Тип: boolean