Apache Kafka各Api模块说明

news/2024/10/14 22:43:58

Kafka API

  • 微信公众号:阿俊的学习记录空间
  • 小红书:ArnoZhang
  • wordpress:arnozhang1994
  • 博客园:arnozhang
  • CSDN:ArnoZhang1994

Kafka 包含五个核心 API:

  1. Producer API 允许应用程序将数据流发送到 Kafka 集群中的topic。
  2. Consumer API 允许应用程序从 Kafka 集群中的topic读取数据流。
  3. Streams API 允许将输入topic的数据流转换为输出topic的数据流。
  4. Connect API 允许实现连接器,持续地从某个源系统或应用程序拉取数据到 Kafka,或将数据从 Kafka 推送到某个接收系统或应用程序中。
  5. 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 Description
org.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 工具插件的接口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71633.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

IDEA如何用maven打包(界面和命令两种方式)

前言 我们在使用IDEA开发时,如果是springboot项目的话,一般是用maven来管理我们的依赖的。然后,当我们开发完成之后,就需要打包部署了。那么,我们应该如何打包呢? 如何打包(jar包) 首先,我们点击右侧的maven侧边栏,然后点击里面的【clean】,先将以前的包清理掉。然后…

odoo18.0 POS微信支付

我们在前面一节中介绍了如何在销售点(Point of Sale)中使用支付宝进行收款/退款,本节我们将介绍如何使用微信支付完成同样的操作。 模块安装 在设置-POS设置-支付终端中开启微信支付:开启之后,系统会自动把微信支付模块安装上,同样地,POS微信的设置也复用的网站应用中的微…

传统题

题面$\quad $ 我们记 \(F(x)\) 为 \(x\) 为真的方案数,\(len\) 为序列最长连续相同子段长度。 $\quad $ 那么就有: \[ans=\sum _{i=1}^{n}F(len=i)*i \]$\quad $ 也就是: \[\sum _{i=1}^{n}F(len>=i) \]$\quad $ 这里可以画个图,发现结果形如三角形,即可得出上式。再改…

AE软件下载安装

Adobe AE安装步骤 2.1准备工作 https://pan.baidu.com/s/1Hdl1gGIpi4LH9zxUflv5DA?pwd=oap4 下载Adobe After Effects安装包并解压。 确保计算机满足软件安装的配置要求。 2.2安装过程 双击安装程序:双击解压后的文件夹中的 set-up安装程序。 更改安装位置:在安装界面点击文…

洛谷P1219八皇后问题

[USACO1.5] 八皇后 Checker Challenge 题目链接 题目描述 一个如下的 \(6 \times 6\) 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列 \(2\ 4\ 6\ 1\ 3\ 5\) 来描述,…

Stanford CS149 -- Assignment 4: NanoGPT149

作业描述及代码参见:cs149gpt Warm-Up:访问张量 张量/数组都是按行存储的,四维数组可以看作元素为三维数组的数组,元素大小即为三维数组内元素总数,以此类推。 第 1 部分:简单(但不太高效)的注意力机制实现 主要实现两个矩阵乘法和一个 softmax 运算。第 2 部分:块矩阵…

AGC061F 做题记录

link 事实上这是 CSP模拟赛 #36 的 T4。 记 \(a_i,b_i\) 分别为前 \(i\) 个字符中 \(0\) 的个数对 \(n\) 取模后的值,\(1\) 的个数对 \(m\) 取模后的值。那么,记 \(k\) 为序列长度,合法的序列满足:\(\forall 1\le i < j\le k ,\ (a_i, b_i) \not = (a_j, b_j)\)\(a_k = …