如何使用 kafka-python 以编程方式创建主题?

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

我刚开始使用 Kafka 并且对 Python 相当陌生。我正在使用这个名为的库kafka-python与我的 Kafka 代理进行通信。现在我需要从我的代码动态创建一个主题,从文档中我看到的是我可以调用create_topics()方法来这样做,但是我不确定,我将如何获得此类的实例。我无法从文档中理解这一点。

有人可以帮我弄这个吗?

Gio*_*ous 5

您首先需要创建一个KafkaAdminClient. 以下应该为您解决问题:

from kafka.admin import KafkaAdminClient, NewTopic


admin_client = KafkaAdminClient(
    bootstrap_servers="localhost:9092", 
    client_id='test'
)

topic_list = [NewTopic(name="example_topic", num_partitions=1, replication_factor=1)]
admin_client.create_topics(new_topics=topic_list, validate_only=False)
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用confluent_kafka客户端,它是librdkafka的轻量级包装器:

from confluent_kafka.admin import AdminClient, NewTopic


admin_client = AdminClient({"bootstrap_servers": "localhost:9092"})
topic_list = [NewTopic("example_topic", 1, 1)]
admin_client.create_topics(topic_list)
Run Code Online (Sandbox Code Playgroud)