我正在使用Kafka让多个微服务相互通信。服务是用Python编写的,我使用Confluent库来处理Kafka。 在某些时候,我知道有些主题只是“结束”,所以我可以自动清理它们。
有没有办法通过Confluent库删除“主题”?我找不到任何关于此的文件...
由于
答案 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你不能使用客户端库删除主题。
为了解决您的一些后续问题,我建议删除这些主题没有意义。如果您正在运行沙箱/原型,那么您最终可能会遇到许多想要从实验中清除的主题。但是,一旦将这些微服务移动到生产环境中,每个主题都有用,并且可能已经完成了对当前数据集的处理,但 next 呢?除非您使用主题命名做一些时髦的事情,并将其与数据中的某些属性联系起来,否则将重新使用主题。
答案 2 :(得分:0)
我使用这个简单的Python函数:
def delete_kafka_topic(topic_name):
call(["/usr/bin/kafka-topics", "--zookeeper", "zookeeper-1:2181", "--delete", "--topic", topic_name])
我的团队在自动化测试中使用它,我们希望能够重新运行测试,验证结果,而不会看到之前测试尝试的结果。