Rabbitmq性能测试
1.安装JAVA环境
先安装openjdk:
sudo apt-get install openjdk-7-jre
sudo apt-get install openjdk-7-jdk
安装完成后,用gedit文本编辑器在/etc/profile中添加环境变量:
sudo gedit /etc/profile
在打开的/etc/profile文件末尾添加下面几行:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
最后执行以下命令让修改生效:
source /etc/profile
2.RabbitMQ性能测试工具
1)介绍
RabbitMQ有一个测试吞吐量的性能测试工具PerfTest。它是基于Java开发的客户端。可以配置为模拟基本和高级两种负载。源码下载地址:https://bintray.com/rabbitmq/java-tools/perf-test。
2)下载PerfTest 的源码或者可执行jar包
https://github.com/rabbitmq/rabbitmq-perf-test/releases
https://bintray.com/rabbitmq/java-tools/perf-test
解压之后运行
// 查看帮助
bin/runjava com.rabbitmq.perf.PerfTest --help
./runjava com.rabbitmq.perf.PerfTest -h amqp://user:pass@192.168.0.1:5672 -e xxx_exchange -k xxx_route -s 50 -x 2 -y 0 --body-content-type application/json -t topic -p -z 5
参数说明:
-h 这个是uri,需要是rabbitmq uri
-s 50个字节的消息,打开queue里实际上类似:
-t 默认exchange是direct,如果不是必须指定-t否则出错。
-p是声明queue是durable持久化的
3)并发测试
// 1个生产者,两个消费者,加-a 是自动确认,去掉a后是手动确认
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-1" -a --id "test 1"
// 使用持久队列和持久消息
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-5" --id "test-5" -f persistent
选项说明:
-x,--producersproducer count(生产者数量)
-y,--consumersconsumer count(消费者数量)
-u,--queuequeue name(队列名称)
-a,--autoack auto ack,客户端在处理完messages之后会给服务端返回一个ack确认信息,服务端在收到该ack信息之后才会把messages删除;
-d,--idtest ID(本次测试的编号,身份标识)
相关链接
https://www.cnblogs.com/saryli/p/9713156.html
https://www.rabbitmq.com/java-tools.html
https://www.ctolib.com/jc3wish-RabbitMQTest.html
https://github.com/rabbitmq/rabbitmq-perf-test/releases/tag/v2.14.0
https://github.com/jc3wish/RabbitMQTest
https://www.codeprj.com/blog/a40c231.html
https://www.freesion.com/article/2303208238/