zoukankan      html  css  js  c++  java
  • 生产者基本操作

    1、启动生产者

      kafka 自带了 kafka-console-producer.sh 脚本,通过该脚本可以在终端调用 kafka 生产者向 kafka 发送消息;

      该脚本运行时需要指定 broker-list(kafka代理地址列表) 和 topic(消息被发送的目标主题) 两个比传参数;

      可选参数:

        1):通过参数 sync 指定以同步模式发送消息;

        2):property 参数后跟配置项键值对;

        3):producer.config 参数加载一个生产者级别的配置文件;

      执行以下命令,启动一个生产者向名为kafka-action的主题发送消息,每条消息包含一个key:

        kafka-console-producer.sh --broker-list localhost:9092 --topic kafka-action --property parse.key=true

        由于该指令没有指定消息key与消息净荷payload之间的分隔符,默认是以制表符分割,可以通过配置项 key.separator 指定:如

          kafka-console-producer.sh --broker-list localhost:9092 --topic kafka-action --property parse.key=true --property key.separator=' '    消息key与消息实际数据之间的分隔符是空格;

      查看某个主题各分区对应消息偏移量:

        kafka-run-class.bat kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic kafka-action --time -1   time参数表示查看在指定时间之前的数据,支持-1(latest)、-2(earliest)两个时间选项,默认值为-1;

        命令结果共三列:主题名、分区编号、消息偏移量

          kafka-action:2:1
          kafka-action:1:2
          kafka-action:0:1

    2、创建主题

      若kafka服务器启动的时候开启了server.properties 文件中的创建主题的配置项 auto.create.topics.enable=true,默认是false,当生产者向一个不存在的主题发送消息的时候,kafka会自动创建主题,创建的主题配置参数使用默认的;

    3、查看主题

      kafka 生产的消息以二进制的形式存在文件中,kafka提供了一个查看日志文件的工具类 kafka.tools.DumpLogSegments。

      产看某个日志文件,files是必参数,多个文件之间用 逗号 隔开:

        kafka-run-class.sh kafka.tools.DumpLogSegments --files dir

    4、生产者性能测试工具

      kafka 提供了生产者性能测试脚本 kafka-producer-perf-test.sh,通过该脚本,可能对生产者性能进行调优。

      脚本参数说明:

        topic  指定生产者发送消息的目标主题

        num-records  测试时发送消息的总条数

        records-size  每条消息的字节数

        throughput  限流控制,当throughput值小于0时,不进行限流;当throughput值大于0时,当已发送的消息总字节数与当前已执行的时间取整大于该throughput值时,生产者线程被阻塞一段时间(生产者线程被阻塞的时,控制台可以看到输出一行吞吐量统计信息);当throughput的值等于0时,生产者发送一次消息之后检测满足阻塞条件时将一直被阻塞。

        producer-props  以键值对的形式指定配置,可以同时指定多组配置,多组配置之间以空格隔开

        producer.config  加载生产者级别的配置文件

      性能测试脚本使用,向一个名为“cest-throughput”的主题发送100万条消息,每条消息大小为1000字节,同时acks设置为all(对应的值为-1),命令如下:

        kafka-producer-perf-test.bat --topic cest-throughput --num-records 1000000 --record-size 1000 --throughput 1000000 --producer-props bootstrap.servers=localhost:9092 acks=all

        测试结果:

          1000000 records sent, 21524.818115 records/sec (20.53 MB/sec), 1464.26 ms avg latency, 4896.00 ms max latency, 1121 ms 50th, 3725 ms 95th, 4727 ms 99th, 4881 ms 99.9th.

          records sent  测试发送的消息总条数

          records/sec  每秒发送的消息数

          MB/sec  每秒发送消息的大小(单位MB)

          avg latency  消息处理的平均耗时,单位ms

          max latency  消息处理的最大耗时,单位ms

          50th /95th /99.9th  表示50%,95th,99.9th的消息处理耗时

  • 相关阅读:
    一些简单的逻辑题
    3种数据类型之间的转换
    搭建selenium + Python环境的总结:
    杂记
    Eclemma的安装
    LR----实现WebService测试
    LR--实现HTTP协议的接口测试
    Loadrunner---解决乱码问题
    selenium常用API实例
    JMeter中响应数据显示乱码问题解决
  • 原文地址:https://www.cnblogs.com/super-jing/p/11095721.html
Copyright © 2011-2022 走看看