下面是使用 Apache JMeter 对 RabbitMQ 进行性能测试的具体示例,包括如何配置 Publisher 和 Consumer,以及压测的具体参数设置。
环境准备
- 安装 Apache JMeter:下载并安装 Apache JMeter(当前版本为 5.4.3)。
- 安装 RabbitMQ:确保 RabbitMQ 服务器已安装并运行。
- 安装 JMeter RabbitMQ 插件:下载并安装适用于 JMeter 的 RabbitMQ 插件。
配置测试计划
1. 打开 JMeter 并创建一个新的测试计划
- 打开 JMeter,创建一个新的测试计划(Test Plan)。
2. 添加线程组(Thread Group)
- 右键点击测试计划,选择
Add
->Threads (Users)
->Thread Group
。 - 配置线程组参数,例如:
- Number of Threads (users): 100 (模拟 100 个并发用户)
- Ramp-Up Period (in seconds): 10 (在 10 秒内启动所有用户)
- Loop Count: 1000 (每个用户循环发送 1000 条消息)
3. 添加 RabbitMQ Publisher 配置
- 右键点击线程组,选择
Add
->Sampler
->RabbitMQ Publisher
。 - 配置 RabbitMQ Publisher 参数,例如:
-
Host:
localhost
(RabbitMQ 服务器地址) -
Port:
5672
(RabbitMQ 端口) -
Virtual Host:
/
(虚拟主机) -
Username:
guest
(RabbitMQ 用户名) -
Password:
guest
(RabbitMQ 密码) -
Exchange:
test_exchange
(要发送消息的交换机) -
Routing Key:
test_key
(路由键) -
Message Body:
{"message": "Hello, World!"}
(消息内容) -
Content Type:
application/json
(内容类型)
-
Host:
4. 添加 RabbitMQ Consumer 配置
- 右键点击线程组,选择
Add
->Sampler
->RabbitMQ Consumer
。 - 配置 RabbitMQ Consumer 参数,例如:
-
Host:
localhost
-
Port:
5672
-
Virtual Host:
/
-
Username:
guest
-
Password:
guest
-
Queue:
test_queue
(消费消息的队列)
-
Host:
5. 添加结果查看器
- 右键点击线程组,选择
Add
->Listener
->View Results in Table
。 - 右键点击线程组,选择
Add
->Listener
->Summary Report
。
压测参数
- 压测时间:持续 30 分钟(1800 秒)。
- 吞吐量:期望每秒处理 1000 条消息。
- 消息大小:每条消息大小为 1 KB(消息体内容可以根据需求调整)。
执行测试
- 启动 RabbitMQ 服务器:确保 RabbitMQ 服务器正在运行。
- 启动 JMeter 测试:点击 JMeter 界面上的绿色箭头按钮开始测试。
-
监控测试结果:
- 在
View Results in Table
中查看每个请求的详细结果。 - 在
Summary Report
中查看总体的吞吐量、平均响应时间、最大响应时间等统计数据。
- 在
分析和优化
- 分析结果:查看吞吐量是否达到预期,每秒处理的消息数量、延迟是否在可接受范围内。
-
优化措施:
- 如果吞吐量不达标,可以尝试增加线程数、调整消息大小或优化网络配置。
- 如果延迟过高,检查系统的资源使用情况,如 CPU、内存、网络 I/O 等,找出瓶颈并进行优化。
通过以上步骤,你可以对 RabbitMQ 的性能进行详细测试,找出系统的瓶颈并进行优化。