背景
在做数据开发时,经常预见要查看kafka 元数据的一些信息,比如有多少个topic、某个topic中有多少分区、创建topic、删除topic等等。
代码
废话不多,直接撸。
我们的maven版本为:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.13</artifactId>
<version>2.7.0</version>
</dependency>
首先我们可以定义一个接口
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.common.PartitionInfo;
import java.util.List;
public interface KafkaClientImp {
/**
* 创建kafka
*
* @param topicName topic名称
* @param partition 分区数 建议小于12个
* @param replication 副本数量
* @return 是否创建成功
*/
boolean createTopic(String topicName, Integer partition, short replication);
/**
* topic 是否存在
*
* @param topicName topic名称
* @return true 存在 false不存在
*/
boolean isTopic(String topicName);
/**
* 获取topic列表
*
* @return
*/
List<String> getTopicList();
/**
* 获取topic 的分区数
*
* @param consumer kafka消费者
* @return
*/
List<PartitionInfo> getPartitionNum(KafkaConsumer<String, String> consumer, Object topicName);
/**
* 删除topic
*
* @param topicName
* @return
*/
boolean deleteTopic(String topicName);
}
然后我们写一个KafkaUtils类来实现接口。
import com.xxx