Зачем нужен Kafka Connect, если те же данные можно перекладывать своим сервисом?
- Зачем нужен 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?
Разбор темы
- Kafka API и экосистема
Клиентские API, Kafka Connect и Debezium, Streams и stream-processing, ksqlDB, Schema Registry и MirrorMaker для multi-DC.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.