Spring Boot 负载测试Kafka消费者

lqfhib0f  于 2023-10-16  发布在  Spring
关注(0)|答案(1)|浏览(101)

(我正在编辑这个问题,因为我认为它不够清楚)
如何对我的Kafka消费者进行负载测试?我看过很多关于负载测试apache Kafka的文章,但没有一篇是关于负载测试消费者的。例如,我在jsr223中编写了jmeter Kafka生产者测试计划,将事件发送到Kafka主题。我的KafkaSpring Boot 消费者听了这个主题,消费了事件并开始处理它。Jmeter只向我展示了关于主题的生产者的报告,仅此而已。有没有更好的方法来对spring Boot Kafka消费者应用程序进行负载测试并获得报告?从消耗时间到过程结束?

pw9qyyiw

pw9qyyiw1#

我相信kafka-consumer-perf-test.sh脚本适用于每个Kafka安装,它应该足以满足您的用例,请参阅Performance testing Kafka Wiki page了解更多细节。
该脚本可以使用OS Process Sampler与JMeter集成
如果您正在谈论使用JMeter从故障中阅读消息-它可以通过任何JSR 223测试元素完成
1.获取Kafka Java Client
1.将库沿着和依赖项放入JMeter类路径
1.重新启动JMeter以获取库
1.将实现从Kafka主题中阅读消息的代码放入JSR 223 Sampler示例片段中:

props.put('bootstrap.servers', '192.168.99.100:9092')
props.put('group.id', 'foo')
props.put('enable.auto.commit', 'true')
props.put('auto.commit.interval.ms', '1000')
props.put('session.timeout.ms', '30000')
props.put('key.deserializer',
        'org.apache.kafka.common.serialization.StringDeserializer')
props.put('value.deserializer',
        'org.apache.kafka.common.serialization.StringDeserializer')
def consumer = new org.apache.kafka.clients.consumer.KafkaConsumer<String, String>(props)
def topic = 'sometopic'

consumer.subscribe(Arrays.asList(topic))
log.info('Subscribed to topic ' + topic)

while (true) {
    def records = consumer.poll(100)
    records.each { record ->
        log.info('Received message: ' + record.value())
    }
}

更多信息请参阅:

相关问题