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命令测试工具

 

posted @ 2022-07-21 18:19  哇不得了  阅读(850)  评论(0)    收藏  举报