Общая информация#

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

Данные файлы называются файлами описания потока обработки (или просто конфигурацией потока / файлом потока). Они имеют расширение «.conf».

Конфигурация потока трансформации#

Конфигурацией потока трансформации является файл в формате HOCON.

Основным конфигурационным элементом является поле flow, которое содержит следующие поля:

  1. name — имя задачи Flink, обязательный;

  2. source — настройки источников сообщений или первого шага потока, обязательный;

  3. flink — дополнительные параметры исполнения потока Flink, опциональный;

  4. restUrls — объект из id, по которому будет происходить обращение к функции, опциональный:

    • url — адрес внешнего сервиса;

    • type — формат ответа JSON, XML, AVRO. Значение по умолчанию — json;

    • schema — список схем для проверки ответа;

    • checkMimeType — признак проверки MIME type из заголовка ответа Content-Type на соответствие с параметром type. Значение по умолчанию — true.

  5. restSslProperties — опциональные настройки ssl; используются в случае, если подключение к сторонним сервисам производится с помощью ssl-соединения (ssl.keystore.location, ssl.keystore.password, ssl.key.password, ssl.truststore.location, ssl.truststore.password, ssl.protocol, ssl.ciphers);

  6. type — используемый клиент, может принимать значения apache или default, опциональный;

  7. timeout — тайм-аут в миллисекундах, используемый в Apache клиенте для получения значения вызова, по умолчанию 10000, опциональный.

flow: {
  name: "Event Process test" # Таким будет имя обработчика в dashboard флинка
  source: [${source1}, ${source2}, ${sourceN}] # Можно передавать список источников в квадратных скобках. Если источник не указан в этом списке, то часть потока, что начинается с него, не будет запущена
  flink: {}
  restUrls {
     testGet: {
        url: "https://localhost:12345/test"
        type: "xml"
        schema: [
          {
            source: "file"
            path: "/file/path/to/xml/schema"
          },{
            source: "classpath"
            path: "/path/to/default/xml/schema"
            default: true }
        ]
        checkMimeType: true
      }
  }
  restSslProperties {
    "ssl.keystore.location" : "/path/to/jks"
    "ssl.keystore.password" : "pass"
    "ssl.truststore.location" : "/path/to/jks"
    "ssl.truststore.password" : "pass"
    "ssl.key.password" : "pass"
  }
}