来自kafka的元数据信息

Metadata information from kafka

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

我想知道

  1. 制作人名单
  2. 主题列表
  3. 主题
  4. 的架构信息

Confluent版本为5.0

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

1) 我认为 Kafka 代理不知道在主题中生成消息的生产者,因此没有用于列出它们的命令行工具。但是,对此 的回答建议您可以通过在 JMX 上查看 MBean 来列出生产者。


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

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

否则,如果您想使用 Java 客户端列出主题,您可以调用 KafkaConsumerlistTopics() 方法。

您还可以通过 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 请求(查看如何操作 here) or use Confluent's Schema Registry Java Client. You can see the implementation and the available methods in their Github repo


关于您关于 Zookeeper 的问题,请注意 ZK is a requirement for Kafka

Kafka uses ZooKeeper so you need to first start a ZooKeeper server if you don't already have one. You can use the convenience script packaged with kafka to get a quick-and-dirty single-node ZooKeeper instance.