Cassandra CQL
Поддерживаются как производитель, так и потребитель.
Apache Cassandra - это открытая NoSQL база данных, предназначенная для обработки больших объемов данных на обычном оборудовании. Как и DynamoDB от Amazon, Cassandra использует архитектуру "peer-to-peer" и "master-less", чтобы избежать единой точки отказа и обеспечить высокую доступность. Как и Google BigTable, данные в Cassandra структурированы с использованием колонковых семей, к которым можно получить доступ через Thrift RPC API или SQL-подобный API, называемый CQL.
Этот компонент предназначен для интеграции с Cassandra 2.0+ с использованием API CQL3 вместо Thrift API. Он основан на Cassandra Java Driver, предоставляемом DataStax.
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
Bean Ref
-
beanRef значение задается через bean:id.
-
По умолчанию:
-
Тип: String
-
Тип: Cluster Name
-
Название Cluster
-
String
Consistency Level
-
-
По умолчанию: ---
-
Тип: Cql
-
CQL-запрос для выполнения. Может быть переопределён с использованием заголовка сообщения с ключом CamelCqlQuery.
-
String
Datacenter
-
Datacenter для использования.
-
По умолчанию: datacenter1
-
Тип: String
Extra Type Codecs
-
Для настройки конкретного списка Extra Type codecs, разделенных запятыми. Возможные значения:
BLOB_TO_ARRAY, BOOLEAN_LIST_TO_ARRAY, BYTE_LIST_TO_ARRAY, SHORT_LIST_TO_ARRAY, INT_LIST_TO_ARRAY, LONG_LIST_TO_ARRAY, FLOAT_LIST_TO_ARRAY, DOUBLE_LIST_TO_ARRAY, TIMESTAMP_UTC, TIMESTAMP_MILLIS_SYSTEM, TIMESTAMP_MILLIS_UTC, ZONED_TIMESTAMP_SYSTEM, ZONED_TIMESTAMP_UTC, ZONED_TIMESTAMP_PERSISTED, LOCAL_TIMESTAMP_SYSTEM and LOCAL_TIMESTAMP_UTC.
-
По умолчанию:
-
Тип: String
-
Тип: Hosts
-
Имя хоста(-ов) сервера Cassandra. Несколько хостов можно разделить запятой.
-
String
Keyspace
-
Keyspace для использования.
-
По умолчанию:
-
Тип: String
-
Тип: Load Balancing Policy Class
-
Использование определённого класса LoadBalancingPolicyClass.
-
String
Password
-
Пароль для аутентификации сессии.
-
По умолчанию:
-
Тип: String
-
Тип: Port
-
Номер порта сервера(ов) Cassandra.
-
Integer
Prepare Statements
-
Определяет, использовать ли подготовленные запросы PreparedStatements или обычные запросы Statements.
-
По умолчанию: true
-
Тип: boolean
Result Set Conversion Strategy
-
Для использования пользовательского класса, реализующего логику преобразования ResultSet в тело сообщения, с параметрами ALL, ONE, LIMIT_10, LIMIT_100 и т. д.
-
По умолчанию:
-
Тип: ResultSetConversionStrategy
-
Тип: Send Empty Message When Idle
-
В случае, если потребитель не получил файлов при опросе, можно активировать эту опцию для отправки пустого сообщения (no body).
-
false
-
boolean
Session
-
Для использования объекта Session (в большинстве случаев эта опция не используется).
-
По умолчанию:
-
Тип: CqlSession
-
Тип: Username
-
Имя пользователя для аутентификации сессии.
-
String
Component scheduler properties
Backoff Error Threshold
-
Число неудачных попыток опроса (неудачных из-за ошибки), после которых должен сработать backoffMultiplier.
-
По умолчанию:
-
Тип: int
-
Тип: Backoff Idle Threshold
-
Число неудачных пустых опросов, после которых должен сработать backoffMultiplier.
-
int
Backoff Multiplier
-
Дает возможность потребителю откатить опрос в случае последовательных бездействий или ошибок, определяя количество пропущенных опросов до следующей попытки. Для этого требуется настройка backoffIdleThreshold и/или backoffErrorThreshold.
-
По умолчанию:
-
Тип: int
-
Тип: Delay
-
Миллисекунды до следующего опроса.
-
500
-
long
Greedy
-
При включении параметра Greedy, ScheduledPollConsumer немедленно выполнит повторный опрос, если в предыдущем опросе было получено хотя бы одно сообщение.
-
По умолчанию: false
-
Тип: boolean
Initial Delay
-
Миллисекунды до начала первого опроса.
-
По умолчанию: 1000
-
Тип: long
Repeat Count
-
Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever.
-
По умолчанию: 0
-
Тип: long
Run Logging Level
-
Потребитель выводит строки лога о старте/завершении каждого опроса. С помощью этой опции можно настроить уровень логирования.
Возможные значения:
-
TRACE
-
DEBUG
-
INFO
-
WARN
-
ERROR
-
OFF
-
-
По умолчанию: TRACE
-
Тип: LoggingLevel
Scheduled Executor Service
-
Предоставляет возможность настроить собственный или общий пул потоков для потребителя. По умолчанию у каждого потребителя есть свой пул потоков, состоящий из одного потока.
-
По умолчанию:
-
Тип: ScheduledExecutorService
-
Тип: Scheduler
-
Использование scheduler cron из компонентов camel-spring или camel-quartz. Для использования встроенного scheduler используйте значение spring или quartz.
-
none
-
Object
Scheduler Properties
-
Для настройки дополнительных свойств при использовании пользовательского scheduler или одного из scheduler на базе Quartz или Spring.
-
По умолчанию:
-
Тип: Map
-
Тип: Start Scheduler
-
Определяет, должен ли scheduler запускаться автоматически.
-
true
-
boolean
Time Unit
-
Единица измерения времени для опций initialDelay и delay.
Возможные значения:
-
NANOSECONDS
-
MICROSECONDS
-
MILLISECONDS
-
SECONDS
-
MINUTES
-
HOURS
-
DAYS
-
-
По умолчанию: MILLISECONDS
-
Тип: TimeUnit
Use Fixed Delay
-
Устанавливает, будет ли использоваться фиксированная задержка или фиксированная частота.
-
По умолчанию: true
-
Тип: 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
Exception Handler
-
Позволяет потребителю использовать собственный ExceptionHandler.
Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию:
-
Тип: ExceptionHandler
-
Тип: Exchange Pattern
-
Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).
Возможные значения:
-
InOnly
-
InOut
-
-
ExchangePattern
Poll Strategy
-
Плагинируемая стратегия опроса org.apache.camel.PollingConsumerPollingStrategy, позволяющая предоставить вашу собственную реализацию для управления обработкой ошибок, которые обычно происходят во время операции опроса, до того как Exchange будет создан и направлен в Camel.
-
По умолчанию:
-
Тип: PollingConsumerPollStrategy