window单机测试kafka


  • 环境:window 64 内存8G;zookeeper+kafka
  • 测试工具: KafkaOffsetMonitor-assembly-0.2.0
  • 操作步骤
  1. 启动zookeeper 、kafka
  2. 打开监听 http://localhost:8089/#
    监听的启动脚本(.bat)                                                               java -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk localhost:2181 --port 8089 --refresh 10.seconds --retain 1.days
    window单机测试kafka_第1张图片
  3. 通过程序自动产生消息
    val topic = "test1"
        var a = 0
        var b = 0
        var c = 0
        var orderdate = ""
        var x = 1
        while(x<1000000){
          a= random.nextInt(10)
          b= random.nextInt(5)
          c= random.nextInt(99)
          orderdate = new DateTime().toString("yyyy-MM-dd HH:mm:ss.sss")
          var msg = "__clientip=10.10.9.153&paymentstatus=0&__opip=&a="+ a +"&b="+ b+ "&c="+c+"&&orderdate="+orderdate+"&no="+x
          val map = Map("a" -> msg)
          kafkaProducer.send1(topic, map)
          println("MG NO = "+ x)
          x+=1
    //      Thread.sleep(2000)
        }
        kafkaProducer.close

    4.使用kafka自带的消费者脚本window单机测试kafka_第2张图片5.分别测试单机下1K、10、 1000K数据量的生产和消费情况

log size : 消息的总量

offset : 消费的位置,即消费的量

lag : 差值,即待消费的数量

window单机测试kafka_第3张图片window单机测试kafka_第4张图片

     消息数据量:998     生产和消费的耗时  测试1: produce(14s)consume(10s)

     消息数据量:998     生产和消费的耗时  测试2: produce(10s)consume(10s)这一段生产和消费是几乎同时的

    消息数据量:998     生产和消费的耗时  测试3: produce(11s)consume(10s)

 window单机测试kafka_第5张图片

     消息数据量:99998     生产和消费的耗时  测试1: produce(26s)consume(11s)

window单机测试kafka_第6张图片

  消息数据量:999999     生产和消费的耗时  测试: produce(40s)consume(124s) 消费是被分成了三个阶段去完成

window单机测试kafka_第7张图片

消息数据量:999999     生产和消费的耗时  测试2: produce(52s)consume(252s) 和上一个测试结果不一样:1.消费在生产刚开始的时候就进行,因此实际消费的时长间隔要大于252s;2.消费被分成了五个阶段完成。

这里测试结果的差异收到的本地内存的影响较大, 但对于大数据量级消息吞吐有一定的参考价值!

你可能感兴趣的:(框架,kafka)