Java 如何监控用于负载测试的Kafka消息的应用程序处理
有一个应用程序(不是我的)从卡夫卡读取消息,对其进行一些处理,并将记录存储在数据库中。我用Java编写了一个程序,它以给定的速率将消息写入队列。现在,它通过在测试运行结束时查询数据库来执行一个简单的性能度量,以确保records in=records out。但是,我想对其进行扩展,定期检查队列,以查看应用程序尚未处理的挂起消息的数量,以查看是否正在对其进行备份 我想我可以在Zookeeper中检查应用程序组ID的偏移量。我查看了,但它只提供了基本的消费者示例,而且API文档充其量也很少,所以我不确定如何查找这些信息 我需要调用哪些API来找出应用程序当前在队列中的位置,以及该位置后面的队列中有多少消息Java 如何监控用于负载测试的Kafka消息的应用程序处理,java,apache-zookeeper,apache-kafka,Java,Apache Zookeeper,Apache Kafka,有一个应用程序(不是我的)从卡夫卡读取消息,对其进行一些处理,并将记录存储在数据库中。我用Java编写了一个程序,它以给定的速率将消息写入队列。现在,它通过在测试运行结束时查询数据库来执行一个简单的性能度量,以确保records in=records out。但是,我想对其进行扩展,定期检查队列,以查看应用程序尚未处理的挂起消息的数量,以查看是否正在对其进行备份 我想我可以在Zookeeper中检查应用程序组ID的偏移量。我查看了,但它只提供了基本的消费者示例,而且API文档充其量也很少,所以我
我将Kafka 2.10-0.8.2.1与一个Zookeeper实例和三个Kafka实例一起使用,load tester使用的是0.8.2.1 Java API。讨论的主题有三个分区(每个Kafka服务器上一个分区),但是为了测试的目的,只有一个使用者。我建议查看Kafka中已经提供的工具(如果需要直接调用API,可以在src中获得代码)。特别是,
$ bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group consumer-group1 --zkconnect zkhost:zkport --topic topic1
将向您显示偏移和滞后:
consumer-group1,topic1,0-0 (Group,Topic,BrokerId-PartitionId)
Owner = consumer-group1-consumer1
Consumer offset = 70121994703
= 70,121,994,703 (65.31G)
Log size = 70122018287
= 70,122,018,287 (65.31G)
Consumer lag = 23584
= 23,584 (0.00G)
参考资料: