Источники событий#

Поддерживаются источники событий 3 видов для компонента EVPC:

  • Topic Apache Kafka;

  • gRPC;

  • shared-grpc;

  • Чтение из файла (обработчик завершит работу после того, как будет достигнут конец файла).

Описание источника событий#

Источником является объект конфигурации с полем type, содержащим значение source со следующими полями:

  1. name — название источника событий;

  2. topic — имя топика для чтения сообщений, по умолчанию «input» (опциональное поле);

  3. config — конфигурация транспорта источника;

  4. destination — описание следующего шага обработки события после источника.

Поле config содержит специфическую конфигурацию транспорта.

Apache Kafka#

  1. type — тип транспорта, значение: «kafka»;

  2. secret — ключ для расшифровки паролей к хранилищам сертификатов, параметры «ssl.key.password», «ssl.keystore.password», «ssl.truststore.password»;

  3. consumer — настройки получателя сообщений;

  4. producer — настройки отправителя сообщений;

  5. Другие настройки Kafka как «bootstrap.servers» и т.д.

Пример конфигурации источников событий с типом kafka#

source: {
   name: "kafka"
   type: "source"
   topic: "input"
   destination: {}
   config: {
      type: "kafka"
      "bootstrap.servers":"localhost:9092"
      consumer: {
         "group.id": "event-process-flow-group"
         "client.id": "event-process-flow-client"
      }
      producer: {
         "client.id": "event-process-flow-producer"
      }
   }
}

gRPC#

  1. type — тип транспорта, значение: «grpc»;

  2. url — имя endpoint из настроек EVTA, указывающие на нужный транспорт и топик или очередь;

  3. host — адрес по которому доступен EVTA;

  4. port — порт EVTA;

  5. timeout — тайм-аут подключения;

  6. kafkaGroupName — переопределение group.id из параметров клиента Apache Kafka.

Пример конфигурации источников событий с типом grpc#

source: {
      name: "gRPC"
      type: "source"
      topic: "input"
      destination: {}
      config: {
         type: "grpc"
         url: "fpss://K2_IAZCommon.Common/System/TESTA/1"
         host: "reactivestreamadapter-evta-os-evpc-demo"
         port: 8081
         timeout: 30000
         kafkaGroupName: "test-consumer1"
       }
}

Настройка транспорта с использованием EVTA#

Для подключения к транспорту с использованием интеграционного адаптера под формат CloudEvent (EVTA), необходимо в конфигурации источников указать следующие настройки c типом подключения shared-grpc:

Имя

Значение по умолчанию

Описание

bufferSize

1000

Размер буфера сообщений

timeout

1000

Время ожидания подключения

host

Хост подключения к EVTA

port

Порт подключения к EVTA

source

Имя подключаемого транспорта

restartAttempts

0

Количество попыток подключения при сбое

Также возможно использование параметров SSL-контекста.

Пример конфигурации источников событий с типом shared-grpc#

source: {
    name: "kafka"
    type: "source"
    topic: "input"
    cloudEvent: "true"
    destination: {}
    config: {
        type: "shared-grpc"
        timeout: 30000
        bufferSize: 1000
        host: "localhost"
        port: 8989
        source: "ru.sbt.ss.event"
        restartAttempts: 3
    }
}

Файл#

Файл (обработчик завершит работу после того, как будет достигнут конец файла, рекомендуется использовать с параллелизмом 1):

  1. type — тип транспорта, значение: «file»;

  2. path — полный путь до файла или директории с файлами.

Пример конфигурации источников событий с типом file#

source: {
      name: "file"
      type: "source"
      topic: "input"
      destination: {}
      config: {
        type: "file"
        path: "/path/to/file.txt"
      }
    }