Loading... ⚙️ **一、功能测试** 1. **消息生产与消费验证** - **基础流程**:使用 `kafka-console-producer/consumer.sh`脚本测试消息收发,验证端到端链路完整性。 - **顺序性**:在单分区内发送有序消息(如ID连续),验证消费顺序一致性;跨分区场景则需明确不保证全局有序。 - **回溯消费**:指定 `--from-beginning`参数或手动设置 `offset`,验证历史消息可重复消费。 2. **分区与副本机制** - **分区分配策略**:测试消息按Key哈希或轮询分配到不同分区,观察分区日志文件确认分布合理性。 - **副本同步**:模拟Leader故障,验证Follower自动晋升为新Leader且数据无丢失(通过 `ISR`状态监控)。 3. **消费者组行为** - **负载均衡**:同一消费者组内多个消费者订阅同一Topic,验证分区被均衡分配。 - **重平衡**:动态增删消费者,观察组内分区重新分配时的服务中断时间及消息积压影响。 --- ### 📊 **二、性能测试** 1. **吞吐量与延迟** - **工具使用**: - 生产者:`kafka-producer-perf-test.sh --num-records 500000 --record-size 200 --throughput 100000`。 - 消费者:`kafka-consumer-perf-test.sh --messages 1000000`。 - **关键指标**: - 生产者:吞吐量(MB/s)、消息速率(条/秒)、平均延迟(ms)。 - 消费者:拉取速率、消费延迟。 - **优化验证**:调整 `batch.size`、`linger.ms`等参数,观察吞吐量变化。 2. **资源压力测试** - **场景设计**: - 高并发:模拟数千客户端同时读写。 - 消息堆积:生产速率持续高于消费速率,观察磁盘占用与内存溢出风险。 - **监控项**:Broker的CPU/内存/磁盘IO、网络带宽、ZooKeeper负载。 --- ### 🛡️ **三、可靠性测试** * **故障容灾** - **Broker宕机**:强制关闭节点,验证副本切换(Leader重选举)及消息连续性。 - **数据持久化**:重启集群后检查HW(High Watermark)偏移量,确认未提交消息不丢失。 * **消息保障机制** **ACK级别**: | **acks设置** | **数据可靠性** | **性能影响** | | ------------------ | ------------------------------------ | ------------------ | | `0` | 可能丢失(发送即视为成功) | 最高 | | `1` | Leader写入即成功,副本未同步可能丢失 | 中等 | | `-1/all` | ISR全部确认,强一致 | 最低 | **事务测试**:启用幂等生产者和事务API,验证 `Exactly-Once`语义。 --- ### 🔐 **四、安全性测试** 1. **认证与授权** - **SASL机制**:测试PLAIN/SCRAM认证,验证非法用户访问拦截。 - **ACL策略**:配置Topic级读写权限,验证未授权操作拒绝。 2. **加密传输** - **SSL/TLS**:启用端到端加密,抓包验证数据明文不可见。 --- ### 🛠️ **五、运维与监控测试** 1. **集群扩展性** - 动态添加Broker,观察分区自动重平衡及吞吐量提升效果。 2. **配置变更** - 调整 `replica.lag.time.max.ms`(副本同步超时),触发副本移出/加入ISR。 3. **监控告警** - 集成Prometheus+Grafana,监控关键指标: - 未同步副本数(Out-of-Sync Replicas) - 活跃消费者组偏移量(Consumer Lag) - 请求队列深度(Request Queue Size) --- ### ⚡ **六、自动化与单元测试** 1. **集成测试工具** - **嵌入式Kafka**:使用 `spring-kafka-test`或 `kafka-junit`启动内存集群,避免依赖外部环境。 - **流处理测试**:`TopologyTestDriver`验证Kafka Streams拓扑逻辑(如窗口聚合)。 2. **消费者偏移量校验** - 脚本定期检查:`kafka-consumer-groups.sh --describe --group <group_id>`,确认Lag无异常堆积。 --- ### 💎 **总结建议** - **测试环境**:优先使用类生产环境的集群规模(至少3 Broker+ZooKeeper集群)。 - **场景覆盖**:结合业务用例设计测试数据(如日志流、交易消息)。 - **持续回归**:将核心用例(如故障切换、一致性)纳入CI/CD流水线。 通过以上多维度验证,可确保Kafka在**高并发、数据一致、故障自愈**等关键场景满足生产要求。详细命令及参数可参考[Kafka性能测试方案](http://yunbk.pinpaidadao.com/?article/1181802)及[Kafka接口测试指南](https://juejin.cn/s/kafka接口测试)。 最后修改:2025 年 06 月 04 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏