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的主要内容,如果未能解决你的问题,请参考以下文章