python - 通过 kafka-python 库检查 kafka 主题是否存在于 python 中,而不使用消费者和 shell 命令
问题描述
[这不是一个重复的问题,因为即使堆栈溢出有类似的问题,但在我的情况下没有答案。因此,我在这里提出我的疑问。]
我想获取可用 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),}
推荐阅读
- excel - 从 onedrive VBA 上的工作表在同一文件夹上创建一个新工作簿
- typescript - 将对象数组转换为单个对象并在 TypeScript 中保留类型
- instagram-graph-api - 图 api 在分页中返回重复数据
- sql - 如何从 ms 访问查询中获取唯一和最新记录?
- r - 将列动态添加到按行 tibble 抛出“必须跨组返回兼容向量”
- azure - 弹性搜索 PVC
- c++ - 无法通过 Linux 和 C++ 在串行通信中通过 read() 从设备接收消息
- java - 使用 xmlMapper (java) 反序列化 xml 时的问题
- elasticsearch - 应用排序字段后,弹性搜索结果得分为 0
- matrix - Power Bi 计算上个月的增长并在矩阵中显示