Получить доступ

Зачем нужен Kafka Connect, если те же данные можно перекладывать своим сервисом?

MiddleЭкосистема KafkaKafka
Ещё спрашивают так:
  • Зачем нужен Kafka Connect?
Коротко

Kafka Connect — платформа для типовых интеграций: source-коннекторы из баз и систем в Kafka, sink-коннекторы из Kafka в хранилища. Масштабирование, хранение позиций, перезапуск и обработка ошибок — из коробки, вы пишете конфигурацию.

  • Debezium (CDC), JDBC, S3, Elasticsearch, ClickHouse и сотни других
  • Распределённый режим: задачи распределяются по воркерам
  • Single Message Transforms — простые преобразования по пути

А ещё Свой сервис нужен для сложной бизнес-логики, а не для переливки данных

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Задача перекладывания данных выглядит простой, пока не начинаешь считать, что придётся реализовать самому: отслеживание позиции чтения, корректный перезапуск после сбоя, распределение работы между экземплярами, обработку ошибок, преобразование форматов и мониторинг. Connect предоставляет всё это как платформу, а коннекторы к популярным системам уже написаны. Самый заметный пример — Debezium, читающий журнал базы и превращающий изменения строк в события, то есть готовая реализация захвата изменений. Разумная граница применения: типовые интеграции по конфигурации — Connect, сложная бизнес-логика преобразования — собственный сервис или Kafka Streams.

Что хотят услышать

  • Что даёт Connect по сравнению со своим сервисом.
  • Source и sink, примеры.
  • Когда писать свой сервис.

Частые ошибки

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

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Он даёт готовую инфраструктуру интеграции: распределённое выполнение, отслеживание позиции, перезапуск, преобразования и обработку сбоев — без написания и сопровождения своего кода
  • ✗Он единственный способ записать данные в Kafka из внешней системы
  • ✗Он ускоряет передачу за счёт собственного бинарного протокола
  • ✗Он нужен только для интеграции с реляционными базами

Что спросят дальше

  • Чем сырые события CDC отличаются от доменных событий?
  • Когда стоит выбрать Kafka Streams вместо Connect?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем