Публичные API
Брокер Kafka включает в себя пять основных Java API:
- API производителя (Producer API) позволяет приложениям рассылать потоки данных по топикам в кластере Kafka.
- API потребителя (Consumer API) позволяет приложениям читать потоки данных из топиков в кластере Kafka.
- API потоков (Streams API) позволяет трансформировать потоки данных из входящих топиков в исходящие.
- Connect API позволяет использовать коннекторы, которые постоянно забирают данные в Kafka из системы или приложения, либо передают их из Kafka в систему или приложение, выполняющее роль приемника.
- API администратора (Admin API) позволяет управлять топиками, брокерами и другими объектами Kafka, а также проверять их.
Kafka использует для работы универсальный протокол (Kafka Protocol), работающий через TCP и определяющий все API как пары сообщений "вопрос-ответ". Это дает возможность клиенту использовать разные языки программирования.
API производителя позволяет приложениям рассылать потоки данных по топикам в кластере Kafka.
Примеры использования данного API можно найти в javadoc.
Чтобы начать использовать API производителя, в конфигурации необходимо указать следующую Maven-зависимость:
Пример type=xml<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.8.0</version> </dependency>
API потребителя позволяет приложениям читать потоки данных из топиков в кластере Kafka.
Примеры использования данного API можно найти в javadoc.
Чтобы начать использовать API потребителя, в конфигурации необходимо указать следующую Maven-зависимость:
Пример type=xml<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.8.0</version> </dependency>
The Streams API позволяет передавать потоки данных из входящих топиков в исходящие.
Примеры использования данного API можно найти в javadoc.
Дополнительную информацию об использовании API потоков можно найти в официальной документации.
Чтобы начать использовать API потоков, в конфигурации необходимо указать следующую Maven-зависимость:
Пример type=xml<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams</artifactId> <version>2.8.0</version> </dependency>
Примечание: при использовании Scala также можно включить библиотеку
kafka-streams-scala
. Дополнительную информацию об использовании Kafka Streams DSL можно найти в Руководстве разработчика.Чтобы начать использовать API потоков со Scala 2.13, в конфигурации необходимо указать следующую Maven-зависимость:
Пример type=xml<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-scala_2.13</artifactId> <version>2.8.0</version> </dependency>
Connect API позволяет использовать коннекторы, которые постоянно забирают данные в Kafka из системы или приложения, либо передают их из Kafka в систему или приложение, выполняющее роль приемника.
Несмотря на то, что многие пользователи не используют этот интерфейс напрямую, они имеют возможность использовать встроенные коннекторы без необходимости написания дополнительного кода. Дополнительную информацию об использовании Connect API можно найти в официальной документации.
Примечание: для реализации собственных коннекторов необходимо ознакомиться с javadoc.
API администратора поддерживает функциональность проверки и управления топиками, брокерами, списками контроля доступа (ACL), а также другими объектами Kafka.
Чтобы начать использовать API администратора, в конфигурации необходимо указать следующую Maven-зависимость:
Пример type=xml<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.8.0</version> </dependency>
Дополнительную информацию об API администратора можно найти в javadoc.