负载测试卡夫卡消费者 [英] Load test kafka consumer

查看:0
本文介绍了负载测试卡夫卡消费者的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

(我正在编辑问题,因为我认为它不够清楚)

如何对我的Kafka消费者进行负载测试? 我看过很多关于负载测试的文章,但是没有一篇是关于负载测试消费者的。 为了前任。我已经在jsr223中编写了jeter Kafka制作人测试计划,将事件发送到Kafka主题。 我的卡夫卡弹簧靴消费者听这个话题,消费事件,开始处理。 Jeter只给我看了关于制片人的报告,仅此而已。 有没有更好的方法来加载测试SpringBoot Kafka消费者应用程序并获得报告? 从消耗时间到进程结束?

推荐答案

我相信每个Kafka安装都会附带kafka-consumer-perf-test.sh脚本,对于您的用例来说应该足够了,有关详细信息,请参阅Performance testing Kafka Wiki page

该脚本可以使用OS Process Sampler

与JMeter集成

如果您谈论的是使用JMeter从断开的数据库中读取消息,则可以由任何JSR223 Test Element

  1. 获取Kafka Java Client

  2. 将库和依赖项一起放入JMeter Classpath

  3. 重新启动JMeter以拾取库

  4. 将实现来自Kafka主题的阅读消息的代码放到JSR223采样器中,示例代码片段:

    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())
        }
    }
    

详细信息:

这篇关于负载测试卡夫卡消费者的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆