【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能

简介: 【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能

问题描述

Azure Event Hub支持 kafka,所以为了测试消息生产者所在环境与Azure Event  Hub之间发送消息的性能如何,特别使用 kafka 官方测试生产者,消费者的性能工具 :

  • kafka-producer-perf-test.bat
  • kafka-consumer-perf-test.bat

(.bat 表示为Windows系统中运行, .sh表示在Linux系统中远行)

这些文件包含在kafka软件包中:https://kafka.apache.org/downloads

 

实现步骤

第一步:解压 kafka ,在bin/windows文件夹中,找到 kafka-producer-perf-test.bat 文件

 

第二步:通过CMD,执行 ” kafka-producer-perf-test.bat --help ” 来查看指令的参数

在本文中测试Azure  Event Hub 需要配置的参数有:

1) --topic :指定消息需要发送到哪一个Event Hub  (注意:kafka的Topic对应于Azure Event Hub Namespace下的一个Event Hub)

2)--num-records : 指定发送多少条消息到Event Hub中

3)--record-size :设置每一条消息的大小,单位是 bytes (1个字节)

4)--throughput :-1 表示不设置吞吐量的限制(throttle maximum message throughput to *approximately* THROUGHPUT messages/sec.  Set this to -1 to disable throttling.)

5)--producer.config : 设置生产者的服务器配置信息,设置Event Hub Namespace的Connection String

## 基本设置
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内容,需要从Azure Event Hub 的 Shared access policie 获取。把以上内容保存在一个单独文件中,如 kafka-producer-perf-test-config.txt

 

第三步:启动测试命令,然后查看输出结果

下面的命令表示:发送50万条1kb的数据到 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

测试的结果显示:

3720 records sent, 743.6 records/sec (0.73 MB/sec), 47367.8 ms avg latency, 49685.0 ms max latency.

表示已经发送 3720条数据,每秒发送743条,平均延迟在47秒,最大延迟49秒 (>_< 测试机器网速堪忧啊!)

 

同理,使用(kafka-consumer-perf-test.bat)也可以测试消费端的性能。

 

参考资料

Kafka : https://kafka.apache.org

相关文章
|
3月前
|
测试技术 UED 开发者
性能测试报告-用于项目的性能验证、性能调优、发现性能缺陷等应用场景
性能测试报告用于评估系统性能、稳定性和安全性,涵盖测试环境、方法、指标分析及缺陷优化建议,是保障软件质量与用户体验的关键文档。
|
7月前
|
消息中间件 Linux Kafka
linux命令使用消费kafka的生产者、消费者
linux命令使用消费kafka的生产者、消费者
335 16
|
10月前
|
消息中间件 Kafka
【赵渝强老师】Kafka生产者的执行过程
Kafka生产者(Producer)将消息序列化后发送到指定主题的分区。整个过程由主线程和Sender线程协调完成。主线程创建KafkaProducer对象及ProducerRecord,经过拦截器、序列化器和分区器处理后,消息进入累加器。Sender线程负责从累加器获取消息并发送至KafkaBroker,Broker返回响应或错误信息,生产者根据反馈决定是否重发。视频和图片详细展示了这一流程。
253 61
|
6月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
11月前
|
消息中间件 网络协议 Java
【Azure Event Hub】Kafka消息发送失败(Timeout Exception)
Azure closes inbound Transmission Control Protocol (TCP) idle > 240,000 ms, which can result in sending on dead connections (shown as expired batches because of send timeout).
310 75
|
9月前
|
消息中间件 Java Kafka
SpringBoot使用Kafka生产者、消费者
SpringBoot使用Kafka生产者、消费者
468 10
|
10月前
|
消息中间件 Kafka
【赵渝强老师】Kafka生产者的消息发送方式
Kafka生产者支持三种消息发送方式:1. **fire-and-forget**:发送后不关心结果,适用于允许消息丢失的场景;2. **同步发送**:通过Future对象确保消息成功送达,适用于高可靠性需求场景;3. **异步发送**:使用回调函数处理结果,吞吐量较高但牺牲部分可靠性。视频和代码示例详细讲解了这三种方式的具体实现。
339 5
|
10月前
|
消息中间件 Java Kafka
【Azure Kafka】使用Spring Cloud Stream Binder Kafka 发送并接收 Event Hub 消息及解决并发报错
reactor.core.publisher.Sinks$EmissionException: Spec. Rule 1.3 - onSubscribe, onNext, onError and onComplete signaled to a Subscriber MUST be signaled serially.
190 5
|
12月前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
300 13
|
12月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
176 11

热门文章

最新文章