- 文档首页
消息队列 Kafka版
最佳实践
对 Kafka 进行生产和消费压力测试
使用 SASL_SSL 接入点进行压力测试
对 Kafka 进行生产和消费压力测试
使用 SASL_SSL 接入点进行压力测试
使用 SASL_SSL 接入点进行压力测试
本文介绍使用 Kafka 的 SASL_SSL 接入点,对 Kafka 进行生产和消费压力测试。
- 为了提高吞吐量,建议创建 Topic 时设置分区数量 ≥ 3。因为 Kafka 实例的节点数量最少是 3,如果只有 1 个分区则分区会分布在一个 Broker 上面,会影响性能。
- 由于 Kafka 是分区级别消息有序的,因此过多的分区也会影响生产性能,建议分区数不超过 6。
- 为了保证压力测试的效果,需要多客户端模拟一定的并发,建议采用多台机器作为压测客户端(生产端),每台启动多个压测程序,提高并发。此外建议每 1s 启动一个生产者,避免同时启动所有生产者导致测试机器高负载。
- 已创建 Kafka 实例,并获取接入点信息。详细信息请参见创建实例。
- 已购买云服务器 ECS 实例,并成功安装 JDK、配置环境变量。详细信息请参见购买 ECS。
- 需要使用 SASL 安全机制连接实例时,需要提前创建 PLAIN 或 SCRAM 类型的 SASL 用户。详细信息请参见创建 SASL 用户。
注意
使用 SASL_SSL 接入点连接 Kafka 实例,会通过 SSL 证书对消息进行鉴权和加密。无论通过公网还是私网使用 SASL_SSL 接入点访问 Kafka 实例,客户端元数据均通过 IP 进行连接,证书中通常不包含该 IP,可能出现 certificate verify failed 报错。为避免上述报错,建议在客户端统一配置参数(本文档以 Java SDK 为例,参数为: ssl.endpoint.identification.algorithm= ),其他语言客户端可以参考开源官方配置,以跳过证书域名校验。
- 在 ECS 实例中下载 Kafka 2.2.2 版本工具包。
- 修改 consumer.properties和 producer.properties文件,在文件中配置 SASL 用户类型、用户名称和密码。
- 分析:本例中一共写入 10w 条消息,每秒向 Kafka 写入了 10.96MB 的数据,平均是 11490.290704 条消息/秒,每次写入的平均延迟为 1940.06 毫秒,最大的延迟为 3803.00 毫秒。
- 开始测试时间 start.time:2024-08-05 17:44:26:414
- 结束时间 end.time:2024-08-05 17:44:40:749
- 最大吞吐率 data.consumed.in.MB:95.3674MB/s
- 平均每秒消费 MB.sec:6.6528MB/s
- 最大每秒消费条数 data.consumed.in.nMsg:100000条
- 平均每秒消费条数 nMsg.sec:6975.9330条
最近更新时间:2026.04.28 10:35:32