首页 > 解决方案 > 如果Kafka中不存在主题,如何使用kafka-python动态创建主题

问题描述

我对 Python 还很陌生,刚刚开始使用 Kafka。我正在使用名为python-kafka的库与 Kafka 进行通信。现在我有一个要求,我需要动态创建主题,但是如果它确实存在,我不需要创建它。

通过阅读文档,我发现我可以使用KafkaAdminClient创建和删除主题,但是我没有找到任何可以检查主题是否存在的内容。

标签: pythonapache-kafkakafka-python

解决方案


KafkaAdminClient 不公开列出主题的方法,但您可以通过简单地从KafkaClient查询集群元数据来获取现有主题的列表。

例如,这将打印集群中的所有主题:

from kafka.client import KafkaClient

client = KafkaClient(bootstrap_servers='localhost:9092')

future = client.cluster.request_update()
client.poll(future=future)

metadata = client.cluster
print(metadata.topics())

推荐阅读