![](/img/trans.png)
[英]Cannot consume from Kafka Topic using confluent-kafka-python to a new consumer-group
[英]How to determine if a kafka topic exists using confluent-kafka-python
我正在使用 confluent-kafka-python package 與 Kafka 服務器進行交互。 我可以成功創建主題並將事件推送到它。 但是,我的問題在於當我啟動多個節點(在 Docker 中運行)時,如果第二個實例也嘗試創建主題,我會收到錯誤消息。 在創建新主題之前,我需要先檢查該主題是否已經存在。
from confluent_kafka.admin import AdminClient, NewTopic
kafka_admin = AdminClient({"bootstrap.servers": server})
# First check here if the topic already exists!
if not topic_exists(topic): # <-- how to accomplish this?
new_kafka_topic = NewTopic(topic, num_partitions=1, replication_factor=1)
results = kafka_admin.create_topics([new_kafka_topic])
謝謝你的幫助!
我遇到了同樣的問題,我通過以下方式進行了管理:
client = AdminClient({"bootstrap.servers": BROKER_URL})
topic_metadata = client.list_topics()
if topic_metadata.topics.get(self.topic_name) is None:
self.create_topic()
AdminClient
類的list_topics
方法允許傳遞您要檢查的主題名稱,因此您無需閱讀現有主題的完整(可能很大)列表:
list_topics([topic=None][, timeout=-1])
文檔: https://docs.confluent.io/platform/current/clients/confluent-kafka-python/html/index.html#id0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.