Протокол коннекторов (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 | — |
Обнаружение коннекторов
Процессор ищет бинарники в следующем порядке:
- DATAFLOW_CONNECTOR_PATH — список директорий (разделитель
:на Unix,;на Windows) - ./connectors/ — относительно рабочей директории
- /usr/local/lib/dataflow/connectors/
- PATH — имя бинарника
dataflow-connector-<type>
Включение subprocess-коннекторов
Установите переменную окружения в поде процессора:
DATAFLOW_USE_SUBPROCESS_CONNECTORS=1
Подробнее см. Connector Protocol (EN).