来自Kafka的元数据信息

用户1393608

我是Confluent / Kafka的新手,我想从kafka中找到元数据信息

我想知道

  1. 生产者名单
  2. 主题清单
  3. 主题的架构信息

融合版本为5.0

可以提供此信息的类(方法)是什么?
是否有相同的任何Rest API?
Zookeeper连接是否需要获取此信息。

Giorgos Myrianthous

1)我不认为Kafka经纪人知道生产者在主题中生成消息,因此没有命令行工具可以列出这些消息。但是,对此SO问题的答案表明,您可以通过查看JMX上的MBean来列出生产者。


2)为了列出主题,您需要运行:

kafka-topics --zookeeper localhost:2181 --list

否则,如果要使用Java客户端列出主题,则可以调用listTopics()方法KafkaConsumer

您还可以通过ZooKeeper获取主题列表

ZkClient zkClient = new ZkClient("zkHost:zkPort");
List<String> topics = JavaConversions.asJavaList(ZkUtils.getAllTopics(zkClient));


3)要获取主题的架构信息,可以使用Schema Registry API

特别是,您可以通过以下方式获取所有主题:

GET /subjects HTTP/1.1
Host: schemaregistry.example.com
Accept: application/vnd.schemaregistry.v1+json, application/vnd.schemaregistry+json, application/json

该响应应类似于以下响应:

HTTP/1.1 200 OK
Content-Type: application/vnd.schemaregistry.v1+json

["subject1", "subject2"]

然后,您可以获取特定主题的所有版本:

GET /subjects/subject-name/versions HTTP/1.1
Host: schemaregistry.example.com
Accept: application/vnd.schemaregistry.v1+json, application/vnd.schemaregistry+json, application/json

最后,您可以获得在此主题下注册的架构的特定版本

GET /subjects/subject_name/versions/1 HTTP/1.1
Host: schemaregistry.example.com
Accept: application/vnd.schemaregistry.v1+json, application/vnd.schemaregistry+json, application/json

或者只是最新的注册架构:

GET /subjects/subject-name/versions/latest HTTP/1.1
Host: schemaregistry.example.com
Accept: application/vnd.schemaregistry.v1+json, application/vnd.schemaregistry+json, application/json

为了在Java中执行此类操作,您可以准备自己的GET请求(请参阅此处的操作方法),也可以使用Confluent的Schema Registry Java Client。您可以在其Github存储库中查看实现和可用方法


关于您对Zookeeper的问题,请注意ZK是Kafka的要求

Kafka使用ZooKeeper,因此如果您还没有,请首先启动ZooKeeper服务器。您可以使用kafka附带的便利脚本来获取快速且肮脏的单节点ZooKeeper实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章