如果Kafka中不存在主题,如何使用kafka-python动态创建主题

Par*_*ras 2 python apache-kafka kafka-python

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

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

Mic*_*son 5

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())
Run Code Online (Sandbox Code Playgroud)

  • 对于较新的版本,请使用``from kafka import KafkaClien````,因为项目结构已更改。 (2认同)