Skip to content

Протокол коннекторов (stdin/stdout)

DataFlow поддерживает запуск коннекторов как отдельных бинарников, которые обмениваются данными с процессором через stdin/stdout в формате JSON Lines (один JSON-объект на строку).

Обзор

При установке DATAFLOW_USE_SUBPROCESS_CONNECTORS=1 и наличии бинарника коннектора (см. Обнаружение коннекторов), процессор запускает бинарник и обменивается командами и ответами через pipes.

Формат протокола

  • Кодировка: UTF-8
  • Формат: Один JSON-объект на строку, разделитель — перевод строки
  • Направление: Процессор пишет в stdin коннектора, читает из stdout
  • Flush: Процессор вызывает Flush после каждой команды

Команды (Процессор → Коннектор)

cmd Описание Поля
init Инициализация с конфигом role, type, config, options
connect Установить соединение
read Читать сообщения (только source) limit (опц.)
write Записать сообщения (только sink) messages
close Закрыть соединение
ping Проверка живости

Ответы (Коннектор → Процессор)

type Описание Поля
ready Готов к следующей команде
message Одно сообщение data, metadata, timestamp
done Операция завершена
error Ошибка message, code
checkpoint Checkpoint (source) data
pong Ответ на ping

Обнаружение коннекторов

Процессор ищет бинарники в следующем порядке:

  1. DATAFLOW_CONNECTOR_PATH — список директорий (разделитель : на Unix, ; на Windows)
  2. ./connectors/ — относительно рабочей директории
  3. /usr/local/lib/dataflow/connectors/
  4. PATH — имя бинарника dataflow-connector-<type>

Включение subprocess-коннекторов

Установите переменную окружения в поде процессора:

DATAFLOW_USE_SUBPROCESS_CONNECTORS=1

Подробнее см. Connector Protocol (EN).

См. также