性能测试Kafka使用loadrunner

Vis*_*ise 2 performance-testing loadrunner apache-kafka

我一直在谷歌搜索一段时间是否他们的任何插件在loadrunner测试卡夫卡集群但没有发现任何东西.我最近意识到我们可以借助apache.kafka.clients之类的软件包通过java程序发送消息

我创建了一个新的Java虚拟用户.

这是我用来生成消息的简单代码:

import lrapi.lr;
import java.util.*;
import org.apache.kafka.clients.producer.*;

public class Actions
{

    public int init() throws Throwable {
        return 0;
    }//end of init


    public int action() throws Throwable {
        String topicName = "loadrunnertest";
      String key = "Key1";
      String value = "hello Vishal";


      Properties props = new Properties();
      props.put("bootstrap.servers", "localhost:9092");
      props.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");         
      props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

      Producer<String, String> producer = new KafkaProducer <String,String>(props);

      ProducerRecord<String, String> record = new ProducerRecord<String,String>(topicName,key,value);
      producer.send(record);           
      producer.close();

      System.out.println("SimpleProducer Completed.");
      return 0;
    }//end of action


    public int end() throws Throwable {
        return 0;
    }//end of end
}
Run Code Online (Sandbox Code Playgroud)

在运行时设置下在类路径中添加所有必需的jar.
通过这个我能够连接到Kafka集群.
因为我用java发送请求会对最终结果产生影响吗?

Han*_*sen 6

Kafka已经提供了负载测试工具,如bin/kafka-producer-perf-test.sh和bin/kafka-consumer-perf-test.sh

如果你看一下这些shell脚本,你会发现它们只是Kafka附带的企业性能测试类的简单包装器,可以直接从Loadrunner或任何Java应用程序调用,如下面的示例,来自Jay Kreps的Kafka基准测试博客文章(请参阅https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines)

bin/kafka-run-class.sh org.apache.kafka.clients.tools.ProducerPerformance test7 50000000 100
-1 acks=1 bootstrap.servers=esv4-hcl198.grid.linkedin.com:9092 buffer.memory=67108864 batch.size=8196
Run Code Online (Sandbox Code Playgroud)