Kafka 0.11客户端集群管理工具AdminClient

Posted 大数据Kafka技术分享

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka 0.11客户端集群管理工具AdminClient相关的知识,希望对你有一定的参考价值。

    很多用户都有直接使用程序API操作Kafka集群的需求。在0.11版本之前,kafka的服务器端代码(即添加kafka_2.**依赖)提供了AdminClient和AdminUtils可以提供部分的集群管理操作,但社区官网主页并没有给出这两个类的使用文档。用户只能自行查看源代码和测试用例才能了解具体的使用方法。倘若使用客户端API的话(即添加kafka_clients依赖),用户必须构造特定的请求并自觉编写代码向指定broker创建Socket连接并发送请求,同样是十分繁琐。故Kafka 0.11版本引入了客户端的AdminClient工具。注意,虽然和原先服务器端的AdminClient类同名,但这个工具是属于客户端的,因此需要在程序中添加kafka_clients依赖,比如Gradle的话则增加 compile group: 'org.apache.kafka', name: 'kafka-clients', version: '0.11.0.0'

  该工具提供的所有功能包括:

  • 创建topic

  • 查询所有topic

  • 查询单个topic详情

  • 删除topic

  • 修改config(包括BROKER和TOPIC资源的config)

  • 查询资源config详情

  • 创建ACL

  • 查询ACL详情

  • 删除ACL

  • 查询整个集群详情

  用户使用该类的方式与Java clients的使用方式一致,不用连接Zookeeper,而是直接给定集群中的broker列表。另外该类是线程安全的,因此可以放心地在多个线程中使用该类的实例。AdminClient的实现机制与《Java API方式调用Kafka各种协议》一文(http://www.cnblogs.com/huxi2b/p/6508274.html)中的方式完全一样:都是在后台自行构建Kafka的各种请求然后发送,只不过所有的细节AdminClient都帮用户实现了,用户不再自己编写底层的各种功能代码了。

  下面给出一个该类的测试实例,列出了除ACL操作之外的所有操作样例代码,如下所示:

public  class  AdminClientTest {

以上是关于Kafka 0.11客户端集群管理工具AdminClient的主要内容,如果未能解决你的问题,请参考以下文章

躬行系列-Kafka集群部署

Kafka 0.11 如何重置偏移量

Kafka controller重设计

全新的Kafka controller来了~~

kafka 集群环境搭建与管理

Kafka 0.11版本新功能介绍