java - RabbitMQ N 交换测试

标签 java testing rabbitmq benchmarking rabbitmq-exchange

我是 RabbitMQ 的新手,正计划编写一些测试来了解 RabbitMQ 中的消息系统如何随着使用的交换数量进行扩展。我特别想知道增加 N 交换将如何影响 CPU、内存和 IO 使用。

我注意到 RabbitMQ 附带了一个 rabbitmqct1.bat 应用程序,它有一个状态命令,可以输出系统相关信息。我遇到的问题是决定在消息传递周期中何时运行基准测试实用程序。

我应该在向交易所发布消息时运行它吗?或者在我将队列绑定(bind)到交换器时运行它?或者当消息从交换器推送到队列时?

干杯。

最佳答案

您可能会发现 Web 管理插件是查看系统当前性能的最简单方法。再一次,看看Routing Topologies for Performance and Scalability with RabbitMQ我在您的另一个问题中链接到了它。

值得考虑测试中的变量:

  • 你的信息会持久吗? (参见 delivery_mode = 2)这将增加您的磁盘 IO
  • 您的消息有多大?这将对吞吐量产生很大的影响,如果它们很大(几 kb 那么你可能想看看压缩),在网络性能和内存方面(以及磁盘 IO,如果它们是持久的)

同样值得注意的是,当队列没有消费者时,队列性能会下降,因此如果它稳定增长,那么性能将会下降,理想情况下,RabbitMQ 队列将始终处于(或接近)0 条消息。

一些有用的链接:

RabbitMQ Performance Measurements, part 1

RabbitMQ Performance Measurements, part 2

关于java - RabbitMQ N 交换测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11886428/

相关文章:

java - 预期 Mockito 测试异常

rabbitmq - Storm 使用 Spring AMQP 从 RabbitMq 读取消息

java - 如何通过同一套接字连接发送图像和文本

java - 代码有什么问题吗? Horstmann 书中的第一个代码示例

java - 安装Eclipse似乎不起作用

c# - 如何使用 C# 制作几个不同的列表?

java - Appium错误: A new session could not be created.(原始错误: 'java -version' failed. Error: spawn ENOENT)

android - 适用于 android 和 iphone 的 RabbitMQ 或 ActiveMQ

java - 如何在 RBDMS 或 NOSQL 数据存储或其他消息系统(例如 rabbitmq)之上实现类似分布式队列的东西?

java - 如何使用 Magento SOAP API2 检索可配置产品的关联产品?