今天在使用的Kafka的時候,發現新版的Kafka中的ZKUtils方法顯示已過時,查閱了資料發現ZKUtils方法已經被AdminClient替代了。
官網上關於AdminClient的介紹是:The AdminClient API supports managing and inspecting topics, brokers, acls, and other Kafka objects.,詳情可參見官網文檔。
主要功能包括:
創建Topic:createTopics(Collection newTopics)
刪除Topic:deleteTopics(Collection topics)
顯示所有Topic:listTopics()
查詢Topic:describeTopics(Collection topicNames)
查詢集羣信息:describeCluster()
查詢ACL信息:describeAcls(AclBindingFilter filter)
創建ACL信息:createAcls(Collection acls)
刪除ACL信息:deleteAcls(Collection filters)
查詢配置信息:describeConfigs(Collection resources)
修改配置信息:alterConfigs(Map<ConfigResource, Config> configs)
修改副本的日誌目錄:alterReplicaLogDirs(Map<TopicPartitionReplica, String> replicaAssignment)
查詢節點的日誌目錄信息:describeLogDirs(Collection brokers)
查詢副本的日誌目錄信息:describeReplicaLogDirs(Collection replicas)
增加分區:createPartitions(Map<String, NewPartitions> newPartitions)
使用示例:
public static void createTopic(String topic){
try {
AdminClient adminClient;
Properties properties = new Properties();
properties.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG,
KafkaProperyies.Broker_List);
adminClient = AdminClient.create(properties);
NewTopic newTopic = new NewTopic(topic,2,(short)2);
adminClient.createTopics(Arrays.asList(newTopic));
adminClient.close();
System.out.println("創建主題成功:"+topic);
}catch (Exception ex){
ex.printStackTrace();
}
}