kafka删除topic的方法

简介:

0.8的官方文档提供了一个删除topic的命令:

kafka-topics.sh --delete 但是在运行时会报错找不到这个方法。

kafka-topics.sh最终是运行了kafka.admin.TopicCommand这个类,在0.8的源码中这个类中没有找到有delete topic相关的代码。

在kafka的admin包下,提供了一个DeleteTopicCommand的类,可以实现删除topic的功能。 

kafka.admin.DeleteTopicCommand 

其中删除topic的具体实现代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import  org.I0Itec.zkclient.ZkClient
import  kafka.utils.{Utils, ZKStringSerializer, ZkUtils}
.......
     val topic = options.valueOf(topicOpt)
     val zkConnect = options.valueOf(zkConnectOpt)
     var zkClient: ZkClient =  null
     try  {
       zkClient =  new  ZkClient(zkConnect,  30000 30000 , ZKStringSerializer)
       zkClient.deleteRecursive(ZkUtils.getTopicPath(topic))   //其实最终还是通过删除zk里面对应的路径来实现删除topic的功能
       println( "deletion succeeded!" )
     }
     catch  {
       case  e: Throwable =>
         println( "delection failed because of "  + e.getMessage)
         println(Utils.stackTrace(e))
     }
     finally  {
       if  (zkClient !=  null )
         zkClient.close()
     }

因为这个命令只会删除zk里面的信息,真实的数据还是没有删除,所以需要登录各个broker,把对应的topic的分区数据目录删除,也可能正因为这一点,delete命令才没有集成到kafka.admin.TopicCommand这个类。



本文转自菜菜光 51CTO博客,原文链接:http://blog.51cto.com/caiguangguang/1548069,如需转载请自行联系原作者

相关文章
消息中间件 Java Kafka
213 0
|
9月前
|
消息中间件 人工智能 安全
秒级灾备恢复:Kafka 2025 AI自愈集群下载及跨云Topic迁移终极教程
Apache Kafka 2025作为企业级实时数据中枢,实现五大革新:量子安全传输(CRYSTALS-Kyber抗量子加密算法)、联邦学习总线(支持TensorFlow Federated/Horizontal FL框架)、AI自愈集群(MTTR缩短至30秒内)、多模态数据处理(原生支持视频流、3D点云等)和跨云弹性扩展(AWS/GCP/Azure间自动迁移)。平台采用混合云基础设施矩阵与软件依赖拓扑设计,提供智能部署架构。安装流程涵盖抗量子安装包获取、量子密钥配置及联邦学习总线设置。
|
消息中间件 存储 分布式计算
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
301 4
|
消息中间件 Kafka Apache
kafka: invalid configuration (That topic/partition is already being consumed)
kafka: invalid configuration (That topic/partition is already being consumed)
|
消息中间件 存储 Ubuntu
在Ubuntu 14.04上安装Apache Kafka的方法
在Ubuntu 14.04上安装Apache Kafka的方法
107 0
|
消息中间件 Ubuntu Java
在Ubuntu 18.04上安装Apache Kafka的方法
在Ubuntu 18.04上安装Apache Kafka的方法
407 0
|
消息中间件 监控 Kafka
查询Kafka集群中消费组(group)信息和对应topic的消费情况
查询Kafka集群中消费组(group)信息和对应topic的消费情况
6327 0
|
消息中间件 负载均衡 监控
【Kafka】Kafka 创建Topic后如何将分区放置到不同的 Broker 中?
【4月更文挑战第13天】【Kafka】Kafka 创建Topic后如何将分区放置到不同的 Broker 中?
|
消息中间件 存储 缓存
【Kakfa】Kafka 的Topic中 Partition 数据是怎么存储到磁盘的?
【4月更文挑战第13天】【Kakfa】Kafka 的Topic中 Partition 数据是怎么存储到磁盘的?
|
消息中间件 Kafka 数据处理
了解Kafka位移自动提交的秘密:避免常见陷阱的方法
了解Kafka位移自动提交的秘密:避免常见陷阱的方法
907 1