Kafka是一种分布式,分区,复制的提交日志服务。它提供了消息传递系统的功能。html
咱们先来看看它的消息传递术语:shell
所以,在高层次上,生产者经过网络向Kafka集群发送消息,而Kafka集群又向消费者提供这样的服务:apache
有关Apache Kafka的更多信息,请参阅如下连接:
Kafka文档服务器
所以,为了对Kafka进行性能测试或基准测试,咱们须要考虑两个方面:网络
咱们须要为Producer和Consumer执行此测试,以便咱们能够确保Producer能够生成多少消息,而Consumer能够在给定时间内消耗这些消息。对于大量消息,咱们也能够确保数据丢失。异步
此测试的主要目的是找出如下统计信息:
1。数据大小的
吞吐量(消息/秒)2。消息数量的吞吐量(消息/秒)
3。总数据
4.消息总数分布式
让咱们继续下载并设置Kafka,请点击这里工具
完成后,您能够继续执行性能统计,按照下面提到的步骤执行此操做:post
1.启动一个新的终端窗口
2.将目录设置为Kafka / bin
3.在这里您能够找到多个shell脚本,咱们将使用如下内容来获取性能统计信息:性能
- kafka-producer-perf-test.sh
- kafka-consumer-perf-test.sh
若是要查看有关shell脚本(perf工具)的帮助,只需键入便可
sh ./kafka-producer-perf-test.sh --help
or
sh ./kafka-consumer-perf-test.sh --help
分别为制片人和消费者。
在控制台上键入如下命令,而后按Enter键:
sh ./kafka-producer-perf-test.sh --broker-list localhost:9092 --topic test --messages 100
让咱们一个一个地理解这些命令行选项..
一旦测试完成,一些统计数据将打印在控制台上,如:
start.time:2016-02-03 21:38:28:094
end.time:2016-02-03 21:38:28:449
compression:0
message.size:100
batch.size:200
total.data.sent .in.MB:0.01
MB.sec:0.0269
total.data.sent.in.nMsg:100
nMsg.sec:281.6901
在进行此性能测试时,您可使用更多参数,例如;
还有一些其余选项能够在Producer性能测试期间根据须要使用。
对于这个博客,我根据消息的数量获取了一些性能数据,并经过图形内联显示了性能。
如今让咱们看一下如何在消费者端获取性能统计数据,输入如下命令并按Enter键。
sh ./kafka-consumer-perf-test.sh --topic test --zookeeper localhost:2181
让咱们理解它的命令行选项,
一旦测试完成,一些统计数据将打印在控制台上,如:
start.time:2016-02-04 11:29:41:806
end.time:2016-02-04 11:29:46:854
fetch.size:1048576
data.consumed.in.MB:0.0954
MB.sec: 1.9869
data.consumed.in.nMs:1001
nMsg.sec:20854.1667
Consumer的性能测试也基于消息数量,结果以图形内联显示。
经过使用统计数据,咱们能够决定批量大小,消息大小和给定配置能够生成/消耗的最大消息数,换句话说,咱们能够为Kafka基准数量。
全部上述分析都是使用Kafka的默认设置完成的,能够有多种状况咱们能够测试并获取Kafka Producer和Consumer的性能统计数据,其中一些状况能够是:
上述更改能够在文件夹中可用的属性文件中完成:
sh /Kafka/kafka_2.9.1-0.8.2.2/config