RabbitMQ Performance Testing Tool 介绍:
https://www.rabbitmq.com/java-tools.html
RabbitMQ Performance Testing Tool 下载:
https://github.com/rabbitmq/rabbitmq-perf-test/releases
解压文件(放到 RabbitMQ 安装目录下)
rabbitmq-perf-test-1.1.0.zip
测试(命令行执行):
> cd D:\Program Files\RabbitMQ Server\rabbitmq-perf-test-1.1.0\bin > runjava.bat com.rabbitmq.perf.PerfTest -a
更多帮助:
> runjava com.rabbitmq.perf.PerfTest --help
usage: <program>
-?,--help show usage
-A,--multiAckEvery <arg> multi ack every
-a,--autoack auto ack
-b,--heartbeat <arg> heartbeat interval
-C,--pmessages <arg> producer message count
-c,--confirm <arg> max unconfirmed publishes
-D,--cmessages <arg> consumer message count
-d,--id <arg> test ID
-e,--exchange <arg> exchange name
-f,--flag <arg> message flag
-h,--uri <arg> connection URI
-i,--interval <arg> sampling interval in seconds
-K,--randomRoutingKey use random routing key per message
-k,--routingKey <arg> routing key
-M,--framemax <arg> frame max
-m,--ptxsize <arg> producer tx size
-n,--ctxsize <arg> consumer tx size
-p,--predeclared allow use of predeclared objects
-Q,--globalQos <arg> channel prefetch count
-q,--qos <arg> consumer prefetch count
-R,--consumerRate <arg> consumer rate limit
-r,--rate <arg> producer rate limit
-s,--size <arg> message size in bytes
-t,--type <arg> exchange type
-u,--queue <arg> queue name
-X,--producerChannelCount <arg> channels per producer
-x,--producers <arg> producer count
-Y,--consumerChannelCount <arg> channels per consumer
-y,--consumers <arg> consumer count
-z,--time <arg> run duration in seconds (unlimited by default)
示例:100个生产者;100个消费者;echange名称为testex;转发类型为fanout;queue名称为testque;bingding为kk01;
runjava.bat com.rabbitmq.perf.PerfTest -x100 -y100 -e"testex" -t"fanout" -u"testque" -k"kk01"
使用PerfTest
运行PerfTest的最基本的方法只是指定要连接的URI,要使用的发布者(比如说1)和一些消费者(比如2)。请注意,RabbitMQ Java客户端可以实现较高的发布速率(每个连接每秒高达80至90K条消息),给予足够的带宽,并且当某些安全措施(发行商确认)被禁用时,很少需要过度配置发布者(除非这是特定的测试目标)。
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-1" -a --id "test 1"
使用2个发布者和4个消费者:
bin/runjava com.rabbitmq.perf.PerfTest -x 2 -y 4 -u "throughput-test-2" -a --id "test 2"
此修改将消费者切换到手动确认:
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-3" --id "test 3"
修改将消息大小从默认(12字节)更改为4 kB:
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-4" --id "test 4" -s 4000
使用持久队列和持久消息:
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-5" --id "test-5" -f persistent