CentOS环境下常见消息中间件性能测试指南
Kafka是CentOS环境下常见的分布式消息中间件,其自带的性能测试工具可直接用于评估吞吐量、延迟等指标。
test_perf),可根据需求调整分区数(如3)、副本数(如1)。使用kafka-producer-perf-test.sh脚本模拟消息发送,关键参数说明:
--topic:目标主题名称;--num-records:发送消息总数(如100万条);--record-size:单条消息大小(字节,如1000字节);--throughput:每秒发送的最大消息数(如1000条/秒,设为0则不限流);--producer-props:生产者配置(必含bootstrap.servers,如localhost:9092)。示例命令(发送100万条1000字节的消息,限流1000条/秒):
./kafka-producer-perf-test.sh --topic test_perf --num-records 1000000 --record-size 1000 --throughput 1000 --producer-props bootstrap.servers=localhost:9092
输出指标:发送总数、每秒发送消息数(records/sec/MB/sec)、平均延迟(avg latency)、最大延迟(max latency)、延迟百分位数(50th/95th/99th)。
使用kafka-consumer-perf-test.sh脚本模拟消息消费,关键参数说明:
--topic:目标主题名称;--messages:消费消息总数(需与生产者发送数量一致);--threads:消费线程数(如10个线程并行消费);--bootstrap-server:Kafka broker地址(替代旧版的--zookeeper)。示例命令(消费100万条消息,使用10个线程):
./kafka-consumer-perf-test.sh --bootstrap-server localhost:9092 --topic test_perf --messages 1000000 --threads 10
输出指标:消费总数、每秒消费消息数(records/sec)、消费延迟等。
batch.size(批量大小,默认16KB,增大可提升吞吐量)、linger.ms(等待时间,默认0ms,增大可合并更多消息)、compression.type(压缩类型,如snappy/lz4,减少网络传输量);top/vmstat命令查看CPU、内存、磁盘IO使用率,避免瓶颈。RocketMQ是另一款常用的消息中间件,可通过自带工具或JMeter进行测试。
RocketMQ安装目录下的bin/tools.sh脚本提供了生产者性能测试功能,关键参数说明:
-t:目标Topic名称;-n:发送消息总数(如10万条);-m:单条消息大小(字节,如1024字节)。示例命令(发送10万条1024字节的消息):
sh bin/tools.sh org.apache.rocketmq.example.perf.PerfTestProducer -t TestTopic -n 100000 -m 1024
输出指标:发送总数、每秒发送消息数、平均延迟。
通过JMeter可模拟复杂场景(如高并发、异步发送),步骤如下:
rocketmq-client);ActiveMQ Artemis是高性能的消息中间件,可通过JMeter或自定义脚本测试。
artemis-jms-client);address-setting(如max-size-bytes:队列最大容量)、queue(如routing-type:路由类型);iftop命令),避免成为瓶颈。