繁体   English   中英

通过 kafka-python 库检查 python 中是否存在 kafka 主题,不使用消费者和 shell 命令

[英]Check whether kafka topic exists or not in python via kafka-python libraries and without using consumer and shell commands

[这不是一个重复的问题,因为即使堆栈溢出有类似的问题,但在我的案例中没有答案。 因此,我在这里提出我的疑问。]

我想获取可用的 Kafka 主题列表并检查特定主题是否存在。 我想在不使用消费者和任何 shell 命令的情况下执行此操作。 我正在通过图书馆本身寻找解决方案。 所以,为了获取我所做的 kafka 主题列表 -

import kafka
client = kafka.KafkaClient(bootstrap_servers='localhost:9092')
topicList = client.topic_partitions

但是,在这里我收到错误消息 -

'KafkaClient' object has no attribute 'topic_partitions'

如果有人能告诉我如何修复错误或建议我任何其他解决方案,那将是一个很大的帮助。 提前致谢。

如果不创建 KafkaConsumer 客户端,则无法执行此操作。 只有在将主题分区分配给特定消费者后,您才能在 kafka 中获得主题分区。

您必须使用KafkaConsumer客户端来检索主题。

其他方法是使用confluent-kafka消费者客户端或管理客户端,尽管后者会重新调整有关集群的元数据,包括主题分区。 使用管理客户端,您可以执行以下操作:

from confluent_kafka.admin import AdminClient
admin_client = AdminClient({'bootstrap.servers': 'localhost:9002'})
admin_client.list_topics().topics

{'topic1': TopicMetadata(topic1, $N partitions),}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM