python - 如果Kafka中不存在主题,如何使用kafka-python动态创建主题
问题描述
我对 Python 还很陌生,刚刚开始使用 Kafka。我正在使用名为python-kafka的库与 Kafka 进行通信。现在我有一个要求,我需要动态创建主题,但是如果它确实存在,我不需要创建它。
通过阅读文档,我发现我可以使用KafkaAdminClient创建和删除主题,但是我没有找到任何可以检查主题是否存在的内容。
解决方案
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())