![](/img/trans.png)
[英]Kafka Streams rebalancing latency spikes on high throughput kafka-streams services
[英]Measure processing throughput in Kafka Streams
我在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();
对于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'
我的问题如下:
foreach
循环中访问KafkaStreams streams.metrics
? 为了读取和/或打印处理的消息吞吐量 anotherInstance(instance)
Kafka Streams通过JMX(Java管理扩展)公开了所有指标。 您可以使用JConsole或VisualVM检查这些指标。 借助这些工具,您可以浏览所有指标并绘制图形。
为了检查您的应用程序正在处理多少消息,请查看该指标:
MBean: kafka.streams:type=stream-metrics,thread.client-id=[threadId]
Attribute: process-rate
它告诉您所有任务每秒平均处理的消息数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.