Kafka API
- 微信公众号:阿俊的学习记录空间
- 小红书:ArnoZhang
- wordpress:arnozhang1994
- 博客园:arnozhang
- CSDN:ArnoZhang1994
Kafka 包含五个核心 API:
- Producer API 允许应用程序将数据流发送到 Kafka 集群中的topic。
- Consumer API 允许应用程序从 Kafka 集群中的topic读取数据流。
- Streams API 允许将输入topic的数据流转换为输出topic的数据流。
- Connect API 允许实现连接器,持续地从某个源系统或应用程序拉取数据到 Kafka,或将数据从 Kafka 推送到某个接收系统或应用程序中。
- Admin API 允许管理和检查topic、代理以及其他 Kafka 对象。
Kafka 将其所有功能通过一个与语言无关的协议暴露出来,并且有很多编程语言的客户端可用。然而,只有 Java 客户端是作为 Kafka 主项目的一部分进行维护的,其他客户端则作为独立的开源项目提供。这里有一个非 Java 客户端的列表。
Producer API
Producer API 允许应用程序将数据流发送到 Kafka 集群中的topic。
如何使用 Producer 的示例可以在 javadoc 中找到。
要使用 Producer,可以使用以下 Maven 依赖:
<dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.8.0</version></dependency>
Consumer API
Consumer API 允许应用程序从 Kafka 集群中的topic读取数据流。
如何使用 Consumer 的示例可以在 javadoc 中找到。
要使用 Consumer,可以使用以下 Maven 依赖:
<dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.8.0</version></dependency>
Streams API
Streams API 允许将输入topic的数据流转换为输出topic的数据流。
如何使用 Streams API 的示例可以在 javadoc 中找到。
有关使用 Streams API 的更多文档可以在这里找到。
要使用 Kafka Streams,可以使用以下 Maven 依赖:
<dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><version>3.8.0</version></dependency>
如果使用 Scala,你可以选择性地包含
kafka-streams-scala
库。关于如何使用 Kafka Streams 的 Scala DSL,可以在开发者指南中找到更多文档。
要在 Scala 2.13 中使用 Kafka Streams DSL,可以使用以下 Maven 依赖:
<dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams-scala_2.13</artifactId><version>3.8.0</version></dependency>
Connect API
Connect API 允许实现连接器,持续从某个源数据系统拉取数据到 Kafka,或将数据从 Kafka 推送到某个接收数据系统。
许多使用 Connect 的用户无需直接使用此 API,他们可以使用预构建的连接器而无需编写任何代码。有关使用 Connect 的更多信息可以在这里找到。
想要实现自定义连接器的用户可以参考 javadoc。
Admin API
Admin API 支持管理和检查topic、代理、ACL 以及其他 Kafka 对象。
要使用 Admin API,请添加以下 Maven 依赖:
<dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.8.0</version></dependency>
相关package说明:
Package****Descriptionorg.apache.kafka.clients.admin提供用于对 Kafka 集群执行管理操作(如创建topic和配置代理)的 Kafka 客户端。org.apache.kafka.clients.consumer提供用于从 Kafka 集群中的topic和/或分区消费记录的 Kafka 客户端。org.apache.kafka.clients.producer提供用于向 Kafka 集群中的topic和/或分区生产记录的 Kafka 客户端。org.apache.kafka.common提供 Kafka 客户端和服务器共享的功能。org.apache.kafka.common.acl提供表示客户端授权访问控制列表的类。org.apache.kafka.common.annotation提供用于 Kafka API 的注解。org.apache.kafka.common.config提供用于定义、解析、验证和记录用户可配置参数的常见机制。org.apache.kafka.common.config.provider提供可插拔的接口和一些用于延迟绑定配置值的实现。org.apache.kafka.common.errors提供通用的异常类。org.apache.kafka.common.header提供用于附加到 Kafka 记录的应用程序定义的元数据的 API。org.apache.kafka.common.metrics提供 Kafka 客户端用来发出指标的 API,随后这些指标通过 *MetricsReporter 接口公开。org.apache.kafka.common.metrics.stats提供用于统计汇总指标的方法。org.apache.kafka.common.quota提供用于强制执行资源配额的机制。org.apache.kafka.common.resource提供表示 Kafka 集群中逻辑资源的客户端句柄。org.apache.kafka.common.security.auth提供用于实现 Kafka 认证机制的可插拔接口。org.apache.kafka.common.security.oauthbearer提供用于在 Kafka 集群中使用 OAuth Bearer Token 认证的 LoginModule。org.apache.kafka.common.security.oauthbearer.secured该包已被弃用。org.apache.kafka.common.security.plain提供使用明文凭证进行 Kafka 集群安全认证的实现。org.apache.kafka.common.security.scram提供使用加盐挑战响应认证机制(SCRAM)来确保 Kafka 集群安全的适配器。org.apache.kafka.common.security.token.delegation提供用于将授权委托给特定 Principal 的机制,以确保 Kafka 集群安全。org.apache.kafka.common.serialization提供用于对象序列化/反序列化的接口及一些实现。org.apache.kafka.connect.components提供用于描述可插拔组件的通用接口。org.apache.kafka.connect.connector提供用于 Connector 和 Task 实现的接口。org.apache.kafka.connect.connector.policy提供可插拔接口,用于控制用户如何配置连接器的策略。org.apache.kafka.connect.data提供用于表示 Connect 处理的数据和模式的类。org.apache.kafka.connect.errors提供 Connect 的常见异常类,供框架和插件用于传达失败信息。org.apache.kafka.connect.header提供用于附加到 Connect 记录的应用程序定义的元数据的 API。org.apache.kafka.connect.health提供用于向 ConnectRestExtension 实例描述运行中 Connect 集群状态的 API。org.apache.kafka.connect.mirror-org.apache.kafka.connect.rest提供可插拔接口,用于更改 Connect REST API 的行为。org.apache.kafka.connect.sink提供用于实现将 Kafka 记录写入外部应用程序的 sink 连接器的 API。org.apache.kafka.connect.source提供用于实现从外部应用程序读取数据并将其导入 Kafka 的 source 连接器的 API。org.apache.kafka.connect.storage提供用于(反)序列化数据到 Kafka 的可插拔接口及一些实现。org.apache.kafka.connect.tools-org.apache.kafka.connect.transforms提供用于更改 Connect 传输数据的可插拔接口。org.apache.kafka.connect.transforms.predicates提供可插拔接口,用于描述何时应对记录应用转换。org.apache.kafka.connect.util提供组件实现中可用的通用实用工具。org.apache.kafka.coordinator.group.api.assignor-org.apache.kafka.server.authorizer提供可插拔接口,用于在 Kafka 服务器上执行授权。org.apache.kafka.server.log.remote.storage提供用于定义 Kafka 日志段的远程存储和检索的可插拔 API。org.apache.kafka.server.policy提供用于表达topic和配置策略的可插拔接口。org.apache.kafka.server.quota提供用于在 Kafka 服务器上执行客户端配额的可插拔接口。org.apache.kafka.server.telemetry提供可插拔接口,用于捕获客户端的遥测指标。org.apache.kafka.streams提供用于构建流数据应用程序的 Kafka Streams 库。org.apache.kafka.streams.errors提供用于 Streams 应用程序的常见异常类。org.apache.kafka.streams.kstream提供用于在输入流和表上表达(有状态的)数据流计算的高级编程模型(DSL)。org.apache.kafka.streams.processor提供用于在输入topic上表达(有状态的)数据流计算的低级编程模型(Processor API,简称 PAPI)。org.apache.kafka.streams.processor.api提供用于在输入topic上表达(有状态的)数据流计算的低级编程模型(Processor API,简称 PAPI)。org.apache.kafka.streams.processor.assignment-org.apache.kafka.streams.processor.assignment.assignors-org.apache.kafka.streams.query提供用于在状态存储上查询(即交互式查询)的 API,用于从有状态的 Kafka Streams 应用程序中提取数据。org.apache.kafka.streams.state提供用于管理有状态流应用程序中间状态的接口。org.apache.kafka.streams.test提供用于使用模拟输入测试 Kafka Streams 应用程序的类。org.apache.kafka.tools.api提供用于编写 Kafka 工具插件的接口。
版权归原作者 ArnoZhang94 所有, 如有侵权,请联系我们删除。