問題描述
Azure Event Hub支持 kafka链蕊,所以為了測(cè)試消息生產(chǎn)者所在環(huán)境與Azure Event Hub之間發(fā)送消息的性能如何稽物,特別使用 kafka 官方測(cè)試生產(chǎn)者橡庞,消費(fèi)者的性能工具 :
- kafka-producer-perf-test.bat
- kafka-consumer-perf-test.bat
(.bat 表示為Windows系統(tǒng)中運(yùn)行, .sh表示在Linux系統(tǒng)中遠(yuǎn)行)
這些文件包含在kafka軟件包中:https://kafka.apache.org/downloads
實(shí)現(xiàn)步驟
第一步:解壓 kafka 鞠鲜,在bin/windows文件夾中户辫,找到 kafka-producer-perf-test.bat 文件
第二步:通過CMD,執(zhí)行 ” kafka-producer-perf-test.bat --help ” 來查看指令的參數(shù)
在本文中測(cè)試Azure Event Hub 需要配置的參數(shù)有:
1) --topic :指定消息需要發(fā)送到哪一個(gè)Event Hub (注意:kafka的Topic對(duì)應(yīng)于Azure Event Hub Namespace下的一個(gè)Event Hub)
2)--num-records : 指定發(fā)送多少條消息到Event Hub中
3)--record-size :設(shè)置每一條消息的大小箍镜,單位是 bytes (1個(gè)字節(jié))
4)--throughput :-1 表示不設(shè)置吞吐量的限制(throttle maximum message throughput to approximately THROUGHPUT messages/sec. Set this to -1 to disable throttling.)
5)--producer.config : 設(shè)置生產(chǎn)者的服務(wù)器配置信息源祈,設(shè)置Event Hub Namespace的Connection String
## 基本設(shè)置
bootstrap.servers=*****.servicebus.chinacloudapi.cn:9093 security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://*****.servicebus.chinacloudapi.cn/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=***************";
注:sasl.jaas.config中的connection string內(nèi)容,需要從Azure Event Hub 的 Shared access policie 獲取色迂。把以上內(nèi)容保存在一個(gè)單獨(dú)文件中香缺,如 kafka-producer-perf-test-config.txt
第三步:?jiǎn)?dòng)測(cè)試命令,然后查看輸出結(jié)果
下面的命令表示:發(fā)送50萬條1kb的數(shù)據(jù)到 test_topic 中
kafka-producer-perf-test.bat --topic test_topic --num-records 500000 --record-size 1024 --throughput -1 --producer.config kafka-producer-perf-test-config.txt
測(cè)試的結(jié)果顯示:
3720 records sent, 743.6 records/sec (0.73 MB/sec), 47367.8 ms avg latency, 49685.0 ms max latency.
表示已經(jīng)發(fā)送 3720條數(shù)據(jù)歇僧,每秒發(fā)送743條图张,平均延遲在47秒,最大延遲49秒 (>_< 測(cè)試機(jī)器網(wǎng)速堪憂罢┖贰祸轮!)
同理,使用(kafka-consumer-perf-test.bat)也可以測(cè)試消費(fèi)端的性能侥钳。
參考資料
Kafka : https://kafka.apache.org
當(dāng)在復(fù)雜的環(huán)境中面臨問題倔撞,格物之道需:濁而靜之徐清,安以動(dòng)之徐生慕趴。 云中痪蝇,恰是如此!