Kafka Connect: коннекторы, конфигурации, задачи, рабочие узлы
Мы уже коснулись основных принципов и теории Kafka Connect. Теперь мы углубимся в его детали, начав с общего обзора. Итак, Kafka Connect использует коннекторы-источники для получения данных из общих источников данных и коннекторы-поглотители для отправки данных обратно в эти же источники. Список этих коннекторов мы рассмотрели ранее. Эта система значительно упрощает процесс для разработчиков, в том числе для тех, у кого мало опыта, позволяя им эффективно передавать данные в Kafka и обратно. Kafka Connect - важный компонент конвейера ETL (Extract, Transform, Load), особенно для работы в режиме реального времени. Он отлично подходит для конвейера в масштабах всей компании благодаря своей надежной масштабируемости в распределенном режиме. Кроме того, код является многократно используемым, а основное отличие одного коннектора от другого заключается лишь в конфигурации, что является значительным преимуществом.
- Коннекторы - источники для получения данных из общих источников данных
- Коннекторы - поглотители для публикации этих данных в общих хранилищах данных
- Облегчают неопытным разработчикам быструю и надежную публикацию данных в Kafka.
- Часть Вашего ETL-конвейера
- Подходит для небольших конвейеров до конвейеров в масштабах всей компании
- Многократно используемый код!
Kafka Connect — концепты
Коннекторы
Далее мы обсудим ключевые концепции Kafka Connect. Кластер Kafka Connect включает в себя несколько коннекторов. Каждый коннектор - это компонент кода многократного использования, по сути, jar-файл Java. Когда Вы компилируете и упаковываете свой код в Java, Вы создаете jar-файлы. Таким образом, коннектор - это класс Java, упакованный в jar-файл. Многие коннекторы доступны в сообществе разработчиков с открытым исходным кодом; их полезно использовать. Например, если Вам нужно передать данные из Postgres в Kafka, Вы можете задать поиск «Kafka Connect Postgres Kafka» и найти соответствующие ресурсы.
У кластера Kafka Connect есть несколько коннекторов:
- Каждый коннектор представляет собой многократно используемую часть кода (java-банки).
- В мире существует множество коннекторов с открытым исходным кодом, используйте их!
Задачи
Коннекторы, сконфигурированные с помощью пользовательских настроек, генерируют задания. Задание напрямую связано с конфигурацией коннектора, и конфигурация задания может порождать несколько заданий. Например, применение одной конфигурации к коннектору может привести к появлению двух или трех заданий.
Коннекторы + пользовательская конфигурация => Задачи
- Задание связано с конфигурацией коннектора
- Конфигурация задания может порождать несколько заданий
Рабочие узлы
Эти задачи выполняют рабочие и серверы Kafka Connect. Вспомните из предыдущей презентации, что кластер Kafka Connect состоит из трех рабочих. Эти рабочие отвечают за выполнение задач. Каждый рабочий - это отдельный Java-процесс, запущенный на сервере. Рабочие могут работать автономно или в кластере, но для оптимальной производительности мы рекомендуем использовать их в кластерной конфигурации.
Задания выполняются рабочими узлами (серверами) Kafka Connect
- Рабочий узел - это отдельный Java-процесс.
- Рабочий узел может быть автономным или находиться в кластере




