我在java中构建了一个流(对一些变量和类进行了简化):
Map<String, Object> props = new HashMap<>();
Properties config = new Properties();
config.put(StreamsConfig.APPLICATION_ID_CONFIG, "my-stream-processing-application");
config.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "my-kafka-broker:6667");
config.put(StreamsConfig.KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass());
config.put(StreamsConfig.VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass());
KStreamBuilder builder = new KStreamBuilder();
KStream<String, String> events = builder.stream("my-topic");
events.foreach((key, value) -> {
CustomClass instance = new CustomClass(value);
for (AnotherCustomClass anotherInstance: someIterator) {
anotherInstance(instance);
}
});
KafkaStreams streams = new KafkaStreams(builder, config);
streams.start();
for kafka 0.10.0.0
:
compile group: 'org.apache.kafka', name: 'kafka-streams', version: '0.10.0.0'
compile group: 'org.apache.kafka', name: 'kafka-clients', version: '0.10.0.0'
我的问题如下:
KafkaStreams streams.metrics
循环中的foreach
?为了阅读和/或打印处理的消息吞吐量anotherInstance(instance)
已被评估的消息 答案 0 :(得分:1)
Kafka Streams通过JMX (Java Management Extensions)公开所有指标。您可以使用JConsole或VisualVM来检查这些指标。使用这些工具,您可以浏览所有指标并绘制图表。
要检查应用程序正在处理的消息数量,请查看该指标:
Error : Unexpected token: punc (()
它告诉您所有任务中每秒处理的平均消息数。
中找到Kafka Streams指标的完整列表