Kafka的运维利器-AdminClient

点击上方蓝色字体,选择“设为星标”

回复”面试“获取更多惊喜

03ea72b9f9650937c788ce33a2ad1b4a.png

前言

一般情况下,我们都习惯使用kafka-topics.sh脚本来管理主题,但有些时候我们希望将主题管理类的功能集成到公司内部的系统中,打造集管理、监控、运维、告警为一体的生态平台,那么就需要以程序调用API的方式去实现。

Kafka社区于0.11版本正式推出了Java客户端版的AdminClient,并不断地在后续的版本中对它进行完善。

本文主要介绍KafkaAdminClient 的基本使用方式,以及采用这种调用API方式下的创建主题时的合法性验证。

功能

鉴于社区还在不断地完善 AdminClient 的功能,AdminClient 提供的功能有以下几个大类。

  • 主题管理:包括主题的创建、删除和查询。

  • 权限管理:包括具体权限的配置与删除。

  • 配置参数管理:包括 Kafka 各种资源的参数设置、详情查询。所谓的 Kafka 资源,主要有 Broker、主题、用户、Client-id 等。

  • 副本日志管理:包括副本底层日志路径的变更和详情查询。

  • 分区管理:即创建额外的主题分区。

  • 消息删除:即删除指定位移之前的分区消息。

  • Delegation Token 管理:包括 Delegation Token 的创建、更新、过期和详情查询。

  • 消费者组管理:包括消费者组的查询、位移查询和删除。

  • Preferred 领导者选举:推选指定主题分区的 Preferred Broker 为领导者。

工作原理

AdminClient 是一个双线程的设计:前端主线程和后端 I/O 线程。

前端线程负责将用户要执行的操作转换成对应的请求,然后再将请求发送到后端 I/O 线程的队列中。

而后端 I/O 线程(kafka-admin-client-thread)从队列中读取相应的请求,然后发送到对应的 Broker 节点上,之后把执行结果保存起来,以便等待前端线程的获取。

使用

如果你使用的是 Maven,需要增加以下依赖项:

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>2.6.5</version>
</
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王知无(import_bigdata)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值