在Kafka 集群中,有时不再需要某个消息队列来保存消息,需要将某个消息队列删除,可以使用命令将Kafka 中的某些消息队列删除。
假设需要将Kafka 中的消息队列“firsttopic”删除,可以在Kafka 任意的Broker 节点执行删除Kafka 消息队列的命令。这里以在mynode1 节点删除“firsttopic”为例。
在mynode1 中执行如下删除命令:
对以上执行命令的参数解释如下:
kafka-topic.sh:关于Kafka Topic 的执行脚本。
--zookeeper:指定协调Kafka 集群的ZooKeeper 集群。
--delete:指定删除Kafka 的命令。
--topic:指定要删除的Topic 名称。
执行完以上命令之后,出现“Note:This will have no impact if delete.topic.enable is not set to true.”提示。这个提示的意思是本条删除命令如果没有设置“delete.topic.enable”参数为true,则当前执行的命令无效。在Kafka 集群中,“delete.topic.enable”默认为true。
执行如下命令查询当前Kafka 集群中的“firsttopic”是否删除成功:
对以上参数的解释如下:
·kafka-topic.sh:Kafka 集群的Topic 的查询执行脚本。
·--zookeeper:指定协调当前Kafka 集群的ZooKeeper 集群。
·--list:查看当前Kafka 集群的Topic 信息。
通过以上命令查询,发现“firsttopic”确实没有被删除,下面在Kafka 中配置“delete.topic.enable”为true,开启删除Topic 的功能。
配置步骤如下:(www.xing528.com)
①停止Kafka 集群。
由于之前Kafka 集群一直启动,现在首先停止Kafka 集群。停止Kafka 集群有单独的停止脚本,这个脚本位于Kafka Broker 节点的路径/bin 下,名称为“kafka-server-stop.sh”,目前这个脚本存在一些问题,需要修改脚本后再停止每个Kafka 集群。
下面在Kafka 每台Broker 节点mynode1、mynode2、mynode3 上修改Kafka 路径中的“kafka-server-stop.sh”脚本,完整的脚本内容如下:
以上脚本需要在每台Kafka Broker 节点上修改,修改成功之后再执行如下停止Kafka 集群的命令:
经过以上命令的执行,Kafka 集群成功停止。
②在每台Kafka 集群的Broker 节点配置参数。
下面需要在每台Kafka 集群的Broker 节点配置“delete.topic.enable”为true,在每台Kafka Broker 节点路径“/software/kafka_2.11-0.11.0.3/config”下配置server.properties 文件,在这个文件后面追加如下内容:
③重启Kafka 集群。
在mynode1 上单独启动Kafka,执行如下命令:
在mynode2 上单独启动Kafka,执行如下命令:
在mynode3 上单独启动Kafka,执行如下命令:
经过以上步骤的配置及重启Kafka 集群,可以删除Kafka 中的“firsttopic”消息队列。下面以在mynode1 中执行删除命令为例,执行如下命令:
经过以上删除“firsttopic”消息队列命令的执行,可以在任意一台Kafka Broker 节点上执行如下命令,验证是否成功将“firsttopic”删除。
经过本次检验命令,发现“firsttopic”成功被删除。
经过以上步骤,可以将Kafka 中的某个Topic 管理删除。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。