rabbitmq性能测试实践
一、预置环境
1、环境部署
# 拉镜像 docker pull portainer/portainer docker pull prom/promethus docker pull prom/node-exporter docker pull grafana/grafana docker pull rabbitmq docker pull influxdb # 创建 portainer 容器 docker run -itd -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer # 创建 promethus 容器 # 查看当前docker0的ip地址 ifconfig | grep -A 1 docker0 mkdir -p /opt/prometheus/ vi /opt/prometheus/prometheus.yml global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['172.17.0.1:9090'] labels: instance: prometheus - job_name: '83主机' static_configs: - targets: ['10.100.48.83:9101'] - job_name: 'rabbitmq' static_configs: - targets: ['10.100.48.83:15692'] docker run -itd --name prometheus -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /etc/localtime:/etc/localtime:ro prom/promethus # 创建 node-exporter 容器 docker run -itd --name node-exporter -p 9101:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter # 创建 grafana 容器 mkdir -p /opt/grafana/data docker run -itd --name grafana -p 3000:3000 -v /opt/grafana/data:/var/lib/grafana -v /etc/localtime:/etc/localtime:ro grafana/grafana # 创建 rabbitmq 容器 mkdir -p /opt/rabbitmq/data docker run -itd --name rabbitmq -p 15672:15672 -p 5672:5672 -p 15692:15692 -v /opt/rabbitmq/data:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=zduo -e RABBITMQ_DEFAULT_PASS=123456 rabbitmq:management docker exec -it rabbitmq /bin/bash rabbitmq-plugins enable rabbitmq_prometheus # 创建 influxdb 容器 mkdir -p /opt/influxdb/ docker run --name influxdb --restart=always -p 8086:8086 influxdb -v "/opt/influxdb/:/var/lib/influxdb/" influxdb docker exec -it influxdb /bin/bash create user "root" with password '123456' with all privileges; create database jmeter; show databases; use jmeter; select * from jmeter; exit;
2、访问地址
portaniner:http://10.100.48.83:9000/
grafana:http://10.100.48.83:3000/
prometheus:http://10.100.48.83:9090/targets
rabbitmq:http://10.100.48.83:15672/
3、grafana配置监控面板
添加prometheus数据源:http://10.100.48.83:9090
添加InfluxDB数据源:http://10.100.48.83:8086 jmeter root 123456 (InfluxDB数据库服务连接地址、Database、User、Password)
主机监控:Import 9276
rabbitmq监控:Import 10991
Jmeter监控:Import 4026
4、参数解释说明:
创建rabbitmq容器
--name:指定容器名称
-d:后台运行
-p:将 mq 端口号映射到本地
-e RABBITMQ_DEFAULT_USER=zduo:设置用户名为 zduo
-e RABBITMQ_DEFAULT_PASS=123:设置密码为 123
二、应用场景
1、需求
对rabbitmq的队列消费速率进行性能测试
2、解决方案
①推送消息的接口A-->rabbitmq生产消息--->接口B消费
②对rabbitmq直接进行测试
三、脚本方式
1、JAVA代码
2、JMeter本地部署-自行查阅
相关插件下载:JMeterAMQP.jar、amqp-client-4.4.1.jar
存放目录:Jmeter的lib/ext目录
3、rabbitmq-perf-test命令测试工具
浙公网安备 33010602011771号