我们正在与zookeeper建立kafka(v0.8)进行日志处理。我试图使用https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-TheAPIs专门定义的API,尝试使用Metadata API获取所有主题和分区的信息。该文档说,元数据请求可以定向到集群中的任何代理。我不清楚如何指导请求(或如何识别请求可以指向的经纪人之一)。我写的代码是用Java编写的,用于建立一个全面的监控系统。
有没有人有任何机会的样本代码? 任何人都可以提供一个示例代码,用于使用任何用于监控且与消费者或生产者无关的API吗? 我在Scala中看过代码,但我不知道Scala,我必须用Java编写我们的商店。
非常感谢任何有用的东西。
答案 0 :(得分:0)
您可以设置代理的地方是消费者。 您可以在他们的文档中使用Kafka的SimpleConsumer Example。 这是一些示例代码
// some sample values
String CLIENT_NAME = "_YOUR_CLIENT_NAME";
int DEFAULT_FETCH_SIZE = 300000; // 0.3 MB, default from kafka
int BUFFER_SIZE = 64 * 1024;
int CONSUMER_TIMEOUT = 5000;
SimpleConsumer consumer = new SimpleConsumer(YOUR_HOST, YOUR_PORT, CONSUMER_TIMEOUT, BUFFER_SIZE, CLIENT_NAME);
List<String> topics = Collections.singletonList("myTopic");
TopicMetadataRequest req = new TopicMetadataRequest(topics);
kafka.javaapi.TopicMetadataResponse response = consumer.send(req);
您能详细说明您要查找的信息类型吗? 信息可以在TopicMetadata,PartitionMetadata等中。