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的消息处理耗时

posted on 2019-06-27 14:07  布咚嘞  阅读(185)  评论(0编辑  收藏  举报