当前位置:   article > 正文

RabbitMQ压测简介_rabbitmq 压测工具

rabbitmq 压测工具
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。
所有主要的编程语言均有与代理接口通讯的客户端库。
详细见以下链接介绍:
本文主要介绍两种压测工具来压测RabbitMQ,第一种是基于  Jm eter-Rabbit-AMQP插件,使用Jmeter进行压测,另外一种是RabbitMQ自带的RabbitMQ-perf.jar压测工具,该工具支持对prometheus的集成;
  1. 使用jmeter插件进行压测
  • 01 安装JmeterRabbitMQ插件
Jmeter没有内置对RabbitMQ的支持,在使用Jmeter发送和接受RabbitMQ以前,需要首先下载相应插件包编译后放置到Jmeter的lib当中( GitHub - jlavallee/JMeter-Rabbit-AMQP: A JMeter plugin to publish & consume messages from RabbitMQ or any AMQP message broker )安装完插件包以后,新建Jmeter脚本,可以在脚本中看到AMQP Publisher和AMQP Consumer取样器,分别对应AMQP协议的消息发送者和消息接受者。
更加详细安装编译插件参见以下链接介绍:
  • 02 Jmeter发送RabbitMQ消息
新建AMQP Publisher,因为本示例采用的是Direct Fanout模式,填写完RabbitMQ连接信息以后,在Publisher里需要指定对应的消费者的绑定Key以及交换机
  • 03 Jmeter接受RabbitMQ消息
新建AMQP Consumer,此处指定RabbitMQ连接信息,交换机名称,类型以及队列名即可(需要和生产者匹配)
运行脚本,查看结果数,此时也可以通过RabbitMQ控制台看到消息发送和接受的情况。
  1. 使用RabbitMQ-perf.jar进行压测
  • 01 首先上官网进行工具介绍及下载

RabbitMQ 性能测试icon-default.png?t=N7T8https://perftest.rabbitmq.com/

  • 02 使用简单的命令进行压测
  1. #使用命令查看基本用法
  2. java -jar perf-t帮est.jar --help
  3. #优雅退出
  4. java -jar perf-test.jar --shutdown-timeout 20
  5. #连接RabbitMQ,注意特殊符号需要URLencode转移
  6. java -jar perf-test.jar --uri "amqp://用户名:密码@ip:端口"
  7. #使用多队列
  8. java -jar perf-test.jar --queue-pattern 'perf-test-%d' \ --queue-pattern-from 1 --queue-pattern-to 10 \ --producers 100 --consumers 100
  9. #创建高负载
  10. java -jar perf-test.jar --queue-pattern 'perf-test-%d' \ --queue-pattern-from 1 --queue-pattern-to 500 \ --producers 500 --consumers 1500

  • 03 与prometheus集成
  1. #metrics采集相关帮助
  2. java -jar perf-test.jar --metrics-help
  3. #集成prometheus,集成端口8090,可以修改
  4. java -jar perf-test.jar --metrics-prometheus \ --metrics-prometheus-port 8090 --metrics-prometheus-endpoint perf-test-metrics

Prometheus 希望抓取或轮询单个应用实例的指标,因此 PerfTest 会启动 侦听端口 8080 并在端点上公开指标的 Web 服务器。这些默认值 可以更改:/metrics

下面是 PerfTest 可以收集的指标:
  • 默认指标:已发布、返回、已确认、已确认和已使用的消息数、消息数 延迟,发布者确认延迟。消息延迟是许多类型的工作负载中的主要问题,可以在此处轻松监控。发布者确认延迟反映了消息可被视为不安全的时间。是的 一旦使用 / 选项,就计算。 只要 PerfTest 支持监视系统,默认指标就可用 已启用。--confirm-c
  • 客户端指标:这些是 Java 客户端指标。 与默认的 PerfTest 指标相比,启用这些指标应该不会带来太多好处。 除了查看 PerfTest 在打开连接数方面的行为 例如,和渠道。客户端指标使用 or 标志启用。-mc--metrics-client
  • JVM 内存指标:这些指标报告 JVM 的内存使用情况,例如当前堆大小等。 它们有助于更好地了解客户端行为,例如堆内存波动 可能是由于频繁的垃圾回收可以解释高延迟数字。这些指标 使用 OR 标志启用。-mjm--metrics-jvm-memory
  • JVM 线程指标:这些指标报告 PerfTest 进程中使用的 JVM 线程数, 以及他们的状态。这对于优化 PerfTest 的使用以使用更少的资源模拟高负载非常有用。 这些指标是使用 or 标志启用的。-mjt--metrics-jvm-thread
  • JVM GC 指标:这些指标报告垃圾回收活动。它们可能因以下情况而异 在使用的 JVM、其版本和 GC 设置上。它们可用于关联 GC 具有 PerfTest 行为的活动,例如由于非常频繁而导致的异常低吞吐量 垃圾回收。这些指标是使用 or 标志启用的。-mjgc--metrics-jvm-gc
  • JVM 类装入器指标:已加载和未装入的类的数量。这些指标 使用 OR 标志启用。-mcl--metrics-class-loader
  • 处理器指标:指标报告 JVM 收集的 CPU 活动。 可以使用 or 标志启用它们。-mjp--metrics-processor
  • 04 导出HTML报告
追求完美的人去选择这个html报告吧,但是看起来的图片都是有点怪怪的。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/393710?site
推荐阅读
相关标签
  

闽ICP备14008679号