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