Вопрос с собеседования · Брокеры сообщений

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

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

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

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

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

Подробно

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

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

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

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

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

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

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

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

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

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

Разбор темы

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

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования