InfluxDB

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

Этот компонент позволяет взаимодействовать с InfluxDB (opens in a new tab) v1, базой данных временных рядов.

Нативный тип тела для этого компонента -- Point(нативный класс influxdb). Однако он также может принимать Map<String, Object>as тело сообщения и будет преобразован в Point.class. Обратите внимание, что карта должна содержать элемент с InfluxDbConstants.MEASUREMENT_NAMEключом as.

Кроме того, вы можете зарегистрировать собственные преобразователи в свой тип данных Pointили использовать инструменты (де)маршалинга, предоставляемые Camel.

* Для InfluxDB v2 проверьте компонент InfluxDB2 .

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

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-influxdb</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

URI format

influxdb://beanName?[options]

Производитель позволяет отправлять сообщения в InfluxDB, настроенную в реестре, используя собственный драйвер Java.

Configuring Options

Компоненты Camel настраиваются на двух отдельных уровнях:

  • уровень компонентов

  • уровень конечной точки

Configuring Component Options

На уровне компонентов задаются общие и общие конфигурации, которые затем наследуются конечными точками. Это самый высокий уровень конфигурации.

Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевого подключения и т. д.

У некоторых компонентов всего несколько параметров, а у других -- много. Поскольку компоненты обычно имеют предустановленные значения по умолчанию, которые широко используются, зачастую вам может потребоваться настроить лишь несколько параметров компонента, а то и вовсе ни одного.

Вы можете настроить компоненты, используя:

  • Компонент DSL (opens in a new tab) .

  • в файле конфигурации ( application.propertiesфайлы *.yaml, и т.д.).

  • непосредственно в коде Java.

Configuring Endpoint Options

Настройка конечных точек обычно занимает больше времени, поскольку у них есть множество параметров. Эти параметры помогают вам настроить функции конечной точки. Параметры также классифицируются по тому, используется ли конечная точка как потребитель ( от ), как производитель ( от ) или и то, и другое.

Конечные точки чаще всего настраиваются непосредственно в URI конечной точки в виде параметров пути и запроса . Вы также можете использовать Endpoint DSL (opens in a new tab) и DataFormat DSL (opens in a new tab) в качестве типобезопасного способа настройки конечных точек и форматов данных в Java.

Хорошей практикой при настройке параметров является использование заполнителей свойств (opens in a new tab) .

Заполнители свойств обеспечивают несколько преимуществ:

  • Они помогают предотвратить использование жестко запрограммированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.

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

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

В следующих двух разделах перечислены все параметры, сначала для компонента, а затем для конечной точки.

Component Options

Компонент InfluxDB поддерживает 3 параметра, которые перечислены ниже.

influxDB (producer)

  • По умолчанию: Autowired Общая база данных Influx для использования во всех конечных точках.

  • По умолчанию: Тип: * InfluxDB

lazyStartProducer (producer)

  • Тип: Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

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

  • Тип: boolean

autowiredEnabled (advanced)

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

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

  • Тип: boolean

Endpoint Options

Конечная точка InfluxDB настраивается с использованием синтаксиса URI:

influxdb:connectionBean

Со следующими параметрами пути и запроса :

Path Parameters (1 parameters)

connectionBean (producer)

  • Требуется подключение к базе данных Influx класса InfluxDB.class.

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

  • Тип: String

Query Parameters (8 parameters)

autoCreateDatabase (producer)

  • Определите, хотим ли мы автоматически создать базу данных, если ее нет.

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

  • Тип: boolean

batch (producer)

  • Определите, является ли данная операция пакетной операцией или нет.

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

  • Тип: boolean

checkDatabaseExistence (producer)

  • Определите, хотим ли мы проверить существование базы данных при запуске конечной точки.

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

  • Тип: boolean

databaseName (producer)

  • Имя базы данных, в которой будет храниться временной ряд.

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

  • Тип: String

operation (producer)

  • Тип: Определите, является ли эта операция вставкой или запросом.

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

  • Тип: String

query (producer)

  • Определить запрос в случае запроса операции.

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

  • Тип: String

retentionPolicy (producer)

  • Строка, определяющая политику хранения данных, созданных конечной точкой.

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

  • Тип: String

lazyStartProducer (producer (advanced))

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

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

  • Тип: boolean

Message Headers

Компонент InfluxDB поддерживает 3 заголовка сообщения, которые перечислены ниже:

camelInfluxDB.RetentionPolicy (producer)

Constant: RETENTION_POLICY_HEADER (opens in a new tab)

  • Строка, определяющая политику хранения данных, созданных конечной точкой..

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

  • Тип: String

camelInfluxDB.databaseName (producer)

Constant: DBNAME_HEADER (opens in a new tab)

  • Имя базы данных, в которой будет храниться временной ряд.

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

  • Тип: String

camelInfluxDB.query (producer)

Constant: INFLUXDB_QUERY (opens in a new tab)

  • Тип: Определить запрос в случае запроса операции.

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

  • Тип: String

Example

Ниже приведен пример маршрута, который сохраняет точку в определенном ключе базы данных (имя базы данных берется из URI):

from("direct:start")
        .setHeader(InfluxDbConstants.DBNAME_HEADER, constant("myTimeSeriesDB"))
        .to("influxdb://connectionBean);
from("direct:start")
        .to("influxdb://connectionBean?databaseName=myTimeSeriesDB");

Spring Boot Auto-Configuration

При использовании influxdb с Spring Boot обязательно используйте следующую зависимость Maven для поддержки автоматической настройки:

<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-influxdb-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

Компонент поддерживает 4 опции, которые перечислены ниже.

camel.component.influxdb.autowired-enabled

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

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

  • Тип: Boolean

camel.component.influxdb.enabled

  • Включить ли автоматическую настройку компонента influxdb. По умолчанию эта опция включена.

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

  • Тип: Boolean

camel.component.influxdb.influx-d-b

  • Общая база данных Influx для использования на всех конечных точках. Тип параметра -- org.influxdb.InfluxDB.

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

  • Тип: InfluxDB

camel.component.influxdb.lazy-start-producer

  • Тип: Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

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

  • Тип: Boolean