2. API
Kafka 包含五个核心 api:
- Producer API 允许应用程序将数据流发送到 Kafka 集群中的主题。
- Consumer API 允许应用程序从 Kafka 集群中的主题读取数据流。
- Streams API 允许将数据流从输入主题转换为输出主题。
- Connect API 允许实现不断从某些源系统或应用程序拉取到 Kafka 或从 Kafka 推送到某些接收器系统或应用程序的连接器。
- AdminClient API 允许管理和检查主题、代理和其他 Kafka 对象。
Kafka 通过独立于语言的协议公开其所有功能,该协议具有多种编程语言的客户端。然而,只有 Java 客户端作为主 Kafka 项目的一部分进行维护,其他客户端可作为独立的开源项目使用。此处提供了非 Java 客户端的列表。
2.1 Producer API
Producer API 允许应用程序将数据流发送到 Kafka 集群中的主题。
javadocs 中给出了展示如何使用生产者的示例 。
要使用生产者,您可以使用以下 Maven 依赖项:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.5.0</version>
</dependency>
2.2 Consumer API
Consumer API 允许应用程序从 Kafka 集群中的主题读取数据流。
javadocs 中给出了展示如何使用消费者的示例 。
要使用消费者,您可以使用以下 Maven 依赖项:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.5.0</version>
</dependency>
2.3 Streams API
Streams API 允许将数据流从输入主题转换为输出主题。
javadoc 中给出了展示如何使用该库的示例。
有关使用 Streams API 的其他文档可在此处获取。
要使用 Kafka Streams,您可以使用以下 Maven 依赖项:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
<version>3.5.0</version>
</dependency>
使用 Scala 时,您可以选择包含该kafka-streams-scala
库。开发人员指南中提供了有关使用 Scala 的 Kafka Streams DSL 的其他文档。
要在 Scala 2.13 中使用 Kafka Streams DSL for Scala,您可以使用以下 Maven 依赖项:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
<version>3.5.0</version>
</dependency>
2.4 Connect API
Connect API 允许实现不断从某个源数据系统拉入 Kafka 或从 Kafka 推送到某个接收器数据系统的连接器。
Connect 的许多用户不需要直接使用此 API,但他们可以使用预构建的连接器,而无需编写任何代码。有关使用 Connect 的更多信息可在此处获取。
想要实现自定义连接器的人可以查看javadoc。
2.5 AdminClient API
AdminClient API 支持管理和检查 topics, brokers, acls, and 其他 Kafka 对象。
要使用 AdminClient API,请添加以下 Maven 依赖项:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.5.0</version>
</dependency>
有关 AdminClient API 的更多信息,请参阅javadoc。