如何使用confluent-kafka-python删除主题

时间:2017-11-01 09:03:12

标签: python apache-kafka confluent confluent-kafka

我正在使用Kafka让多个微服务相互通信。服务是用Python编写的,我使用Confluent库来处理Kafka。 在某些时候,我知道有些主题只是“结束”,所以我可以自动清理它们。

有没有办法通过Confluent库删除“主题”?我找不到任何关于此的文件...

由于

3 个答案:

答案 0 :(得分:2)

您可以使用confluent Admin Api's to delete a topic

示例

获取一个AdminClient实例和主题列表

document.getElementsByName("myFrame")[0].style.background = "green";
document.getElementById("myFrame").style.background = "green";

答案 1 :(得分:1)

从字面上回答你的问题:不,AFAIK你不能使用客户端库删除主题。

使用AdminClient API

可以实现

为了解决您的一些后续问题,我建议删除这些主题没有意义。如果您正在运行沙箱/原型,那么您最终可能会遇到许多想要从实验中清除的主题。但是,一旦将这些微服务移动到生产环境中,每个主题都有用,并且可能已经完成了对当前数据集的处理,但 next 呢?除非您使用主题命名做一些时髦的事情,并将其与数据中的某些属性联系起来,否则将重新使用主题。

答案 2 :(得分:0)

我使用这个简单的Python函数:

def delete_kafka_topic(topic_name):
    call(["/usr/bin/kafka-topics", "--zookeeper", "zookeeper-1:2181", "--delete", "--topic", topic_name])

我的团队在自动化测试中使用它,我们希望能够重新运行测试,验证结果,而不会看到之前测试尝试的结果。