负载测试kafka消费者

问题描述 投票:0回答:2

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

如何对我的 kafka 消费者进行负载测试? 我看过很多关于 apache kafka 负载测试的文章,但没有一篇关于消费者负载测试的文章。 对于前。我在jsr223中编写了jmeter kafka生产者测试计划,将事件发送到kafka主题。 我的kafka spring boot消费者监听这个主题,消费事件并开始处理它。 Jmeter 只向我显示有关该主题的生产者的报告,仅此而已。 有没有更好的方法来加载测试 spring boot kafka 消费者应用程序并获取报告? 从消耗时间到流程结束?

spring-boot jmeter kafka-consumer-api
2个回答
4
投票

我相信

kafka-consumer-perf-test.sh
脚本适用于每个 Kafka 安装,它应该足以满足您的用例,请参阅性能测试 Kafka Wiki 页面了解更多详细信息。

该脚本可以使用 OS Process Sampler

与 JMeter 集成

如果您正在谈论使用 JMeter 从损坏的位置读取消息 - 可以通过任何 JSR223 测试元素

来完成
  1. 获取Kafka Java客户端

  2. 将库以及依赖项放入JMeter Classpath

  3. 重新启动 JMeter 以获取库

  4. 将实现从 Kafka 主题读取消息的代码放入 JSR223 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())
        }
    }
    

更多信息:


0
投票

连我也在寻找同样的问题。你找到解决方案了吗

© www.soinside.com 2019 - 2024. All rights reserved.