yum update -y),并安装Java(Kafka依赖Java 8+,可通过java -version验证)。./kafka-server-start.sh -daemon config/server.properties)。JMX_PORT环境变量(如export JMX_PORT=19797)。--partitions)和副本数(--replication-factor),例如:./kafka-topics.sh --create --topic test_perf --partitions 3 --replication-factor 2 --bootstrap-server localhost:9092
使用Kafka自带的kafka-producer-perf-test.sh脚本模拟生产者发送消息,测试吞吐量与延迟。
./kafka-producer-perf-test.sh \
--topic test_perf \
--num-records 1000000 \ # 总消息数
--record-size 1000 \ # 每条消息大小(字节)
--throughput 50000 \ # 限流(每秒最大消息数)
--producer-props bootstrap.servers=localhost:9092 # Broker地址
--batch-size:批量发送大小(默认16384),增大可提升吞吐量但增加延迟;--linger.ms:等待批量发送的时间(默认0),增大可合并更多消息;--compression.type:压缩类型(如lz4、snappy),降低网络传输量但增加CPU开销;--acks:生产者确认机制(0=不等待确认,1=等待Leader确认,all=等待所有ISR副本确认),all最可靠但延迟最高。使用kafka-consumer-perf-test.sh脚本模拟消费者拉取消息,测试消费吞吐量与延迟。
./kafka-consumer-perf-test.sh \
--bootstrap-server localhost:9092 \ # Broker地址
--topic test_perf \ # 消费的Topic
--messages 1000000 \ # 总消息数
--threads 10 # 消费线程数
--group:消费者组ID(可选),用于模拟真实消费场景;--fetch-size:每次拉取的数据量(默认1MB),增大可减少网络请求但增加内存占用;--auto-offset-reset:无偏移量时的处理方式(earliest=从最早消息开始,latest=从最新消息开始)。JConsole连接Kafka Broker的JMX端口(jconsole localhost:19797),查看CPU、内存、线程等指标;kafka-topics.sh查看Topic分区状态(--describe);batch.size(如设置为16384-102400)、linger.ms(如设置为10-100ms)、compression.type(如lz4),平衡吞吐量与延迟;fetch-size(如设置为8MB-32MB)、增加消费线程数(与分区数匹配),提升消费并行度;replication.factor(如3,保证高可用);通过以上步骤,可在CentOS环境下完成Kafka的性能测试,并根据测试结果针对性优化集群配置,满足业务需求。