Apache Kafka各Api模块说明

news2025/1/18 9:09:51

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说明:

PackageDescription
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.coloradmin.cn/o/2214305.html

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

相关文章

在java 中如何实现执行linux命令,通过post接口代理出来?

接口方式输入命令得返回结果 public AjaxResult doPost(HttpServletRequest request, HttpServletResponse response, String command) throws ServletException, IOException {// 设置响应内容类型 text/plain // response.setContentType("application/json"…

Linux——Harbor: 容器镜像的存储

K8s 如何通过harbor 拉取镜像&#xff1f; K8S 在那些情况下需要进行镜像的拉取&#xff1f; 在需要进行新的pod的调度时&#xff0c;基于镜像拉取策略&#xff0c;完成镜像的获取&#xff1a; Always: 在任何情况下都需要重新拉取镜像 即使设置为总是进行镜像拉取&#xff…

ERP系统是什么?ERP系统如何与数据库对接?

ERP系统的定义 1.企业ERP系统标准的定义来自于其英文原意&#xff0c;即企业资源规划(Enterprise Resource Planning)。企业资源计划系统是一种集成的软件系统&#xff0c;旨在帮助企业管理其资源。它可以协调各种不同的业务流程&#xff0c;例如供应链管理、采购、库存管理、…

arm架构ceph pacific部署

背景 合作伙伴实验室的华为私有云原来使用单点的nfs做为存储设备&#xff0c;现有两方面考量&#xff0c;业务需要使用oss了&#xff0c;k8s集群及其他机器也需要一套可扩展的分布式文件系统 部署ceph 初始机器配置规划 IP配置主机名Role10.17.3.144c8g1T数据盘ceph-node01…

2-122 文章复现:基于matlab的多智能体系统一致性算法的电力系统分布式经济调度策略

文章复现&#xff1a;基于matlab的多智能体系统一致性算法的电力系统分布式经济调度策略&#xff0c;应用多智能体系统中的一致性算法&#xff0c;以发电机组的增量成本和柔性负荷的增量效益作为一致性变量&#xff0c;设计一种用于电力系统经济调度的算法&#xff0c;通过分布…

透过3大海外案例,看百亿中老年眼镜市场创新发展方向

国内老花镜市场容量为342.15亿元 前言 全球人口老龄化的加速推进&#xff0c;中老年群体正逐渐成为消费市场中不可忽视的重要力量&#xff0c;每一个细微的市场变化都映射着社会结构与消费需求的深刻转型。 其中&#xff0c;中老年眼镜市场的新场景、新需求不断涌现&#xf…

西门子S7-200 SMART选型指南之产品订货信息

提供了S7-200 SMART控制器的产品订货号列表&#xff0c;用户可以根据订货号准确选择所需的产品型号。 S7-200SMART CPU 订货号 产品选型或方案确认需求需要结合工艺、应用场合等因素综合考虑&#xff0c;最终方案或订货号请与西门子销售或经销商确认。本文列出的订货号仅供参考…

Vite + Vue3 使用 cdn 引入依赖,并且把外部 css、js 文件内联引入

安装插件 pnpm i element-plus echarts axios lodash -S在 vite.config.js 引用 注意事项&#xff1a;element-plus 不能在 vite.config.js 中使用按需加载&#xff0c;需要在 main.js 中全局引入&#xff1b; import { resolve } from path import { defineConfig } from v…

晶振电路的设计一定要和单片机靠近,路线尽量短

晶振作为同步单片机全部工作的核心&#xff0c;首先要求高度可靠和稳定&#xff0c;所以离芯片越近&#xff0c;引线越短&#xff0c;受外来干扰就越小&#xff1b; 其次&#xff0c;一般晶振部分是整个电路板中频率最高的部分&#xff0c;也就是高频辐射最严重的部分&#xf…

Redis集群相关

目录 一、Redis主从集群 主从数据同步原理 全量同步 1&#xff09;为什么是基本一致而不是完全一致呢&#xff1f; 2&#xff09;上述过程还有一个问题&#xff0c;怎么判断是不是第一次同步&#xff1f; 增量同步 1&#xff09;master节点怎么知道slave节点与自己的数据…

关于Git Bash中如何定义alias

一、在一次临时Bash会话中使用alias 在Bash中直接输入alias xxdddd&#xff0c;xx为对应要执行的命令的缩写&#xff0c;dddd为要执行的命令&#xff0c;如alias ddcd /d&#xff0c;输入完成后&#xff0c;在Bash中输入dd&#xff0c;即可切换至D盘。 此种设置方式&#xff…

JavaSE——集合2:List(Iterator迭代器、增强for、普通for循环遍历集合)

目录 一、List (一)List接口基本介绍 二、List接口的常用方法 三、List集合的三种遍历方式 四、小练习——使用冒泡排序遍历集合 一、List (一)List接口基本介绍 List接口是Collection接口的子接口 public interface List<E> extends Collection<E> List集…

华大基因与NRL完成技转合作,为中东家庭提供更优质的产前筛查方案

今年年初&#xff0c;华大基因与中东地区最大的美国病理学家学会&#xff08;CAP&#xff09;认证实验室集团National Reference Laboratory&#xff08;NRL&#xff09;&#xff0c;顺利完成了无创产前基因检测技术&#xff08;NIPT&#xff09;技转合作&#xff0c;并向NRL实…

AI先行者工具撰写的烧脑短篇,你不可错过

以下文字是我用ai先行者所创造的文字。我就输入烧脑故事四个关键字 昨晚&#xff0c;我像往常一样刷着朋友圈&#xff0c;准备结束一天的工作前放松一下。突然间&#xff0c;我的好友小林发了一条状态&#xff1a;“如果有人发现我不见了&#xff0c;请不要报警。”这句话配上…

【JAVA毕业设计】基于Vue和SpringBoot的加油站管理系统

本文项目编号 T 003 &#xff0c;文末自助获取源码 \color{red}{T003&#xff0c;文末自助获取源码} T003&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

金蝶云星空与金蝶云星空对接集成采购订单查询连通采购订单新增(采购订单)

金蝶云星空与金蝶云星空对接集成采购订单查询连通采购订单新增(采购订单) 对接系统金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上&#xff0c;提供了标准的管理模式&#xff1b;通过标准的业务架构&#xff1a;多会计准则、多币别、多地点、多组织、多税制应用…

Prometheus+Grafana 监控 Kubernetes

文章目录 一、Prometheus介绍二、Prometheus组件与监控三、Prometheus基本使用&#xff1a;怎么来监控四、Kubernetes监控指标五、Prometheus的基本使用&#xff1a;部署1.基于docker部署prometheusgrafana2. 查看prometheus配置文件3. 监控Linux服务器3.1找到自己相应的系统去…

php外卖霸王餐独立小程序 霸王餐源码 功能用户分销 会员系统 自用/推广私域运营

前言 外卖霸王餐小程序是一种结合了外卖点餐和优惠返利功能的微信小程序&#xff0c;旨在为用户提供一种便捷的点餐体验和优惠福利。 用户以5-10元吃到原价15-25元的外卖&#xff0c;底层逻辑是帮外卖商家做店铺推广&#xff0c;解决新店基础销量、老店增加单量、品牌打万单店…

Apache Kafka 使用示例

Kafka快速入门指南 微信公众号&#xff1a;阿俊的学习记录空间小红书&#xff1a;ArnoZhangwordpress&#xff1a;arnozhang1994博客园&#xff1a;arnozhangCSDN&#xff1a;ArnoZhang1994 第一步&#xff1a;获取Kafka 下载2.13-3.8.0版本的Kafka版本并解压&#xff1a; $…

2d实时数字人聊天语音对话使用案例,对接大模型

参看: https://github.com/wan-h/awesome-digital-human-live2d 电脑环境: ubuntu 1060ti 下载: git clone https://github.com/wan-h/awesome-digital-human-live2d.gitdocker部署; cd awesome-digital-human-live2d docker-compose -f docker-compose-quickStart.ya…