使用Kafka SDK无法提升Azure Event Hub消费速度的问题排查
Kafka SDK消费Azure Event Hub性能瓶颈问题
目标
使用基于Kafka-SDK的自定义Java应用,从Azure Event Hub主题消费海量数据(目标2000万条/小时,吞吐量60GB/小时),并通过JDBC连接器插入Snowflake表。待消费事件共5亿条,均匀分布在10个分区,单条事件大小为12KB至150KB。
环境配置
- Azure Event Hub命名空间:Premium层级,4 PU
- 自定义Java应用运行环境:Azure App Service(Isolated v2 I3V2,实例数3)
- Kafka SDK版本:3.3.1
消费者核心配置参数
fetch.max.bytes = 90000000fetch.min.bytes = 50000000fetch.max.wait.ms = 10000request.timeout.ms = 240000heartbeat.interval.ms = 3000session.timeout.ms = 180000max.partition.fetch.bytes = 900000000receive.buffer.bytes = 80000000
测试结果
- 批处理大小设为5000、1线程时,单批次消费记录数为2500-3000条
- 批处理大小设为5000、2线程时,单批次消费记录数为1200-1800条
- 批处理大小设为5000、10线程时,单批次消费记录数为200-300条
- 10线程并行运行时,每个分区的单批次接收记录数为80-500条
异常现象
服务器及Event Hub侧无节流限制,应用服务器CPU和内存使用率均低于20%,无错误日志输出。无论如何调整消费者配置参数,总消费消息量始终无法提升,尝试多种配置组合均无法达到目标消费速度。
关键对比
相同环境配置下,使用Event Hub原生SDK时消费速度显著更高,仅在使用Kafka SDK时出现消费速度受限的问题。
内容的提问来源于stack exchange,提问作者Suresh Kongara
相关产品推荐
相关产品推荐

