use*_*640 13 performance rabbitmq
如果有人能指出rabbitmq(“平均”硬件,fwiw)的一些合理比例数字/限制的方向,或者发布您对其性能的经验,我将不胜感激。我试图了解队列数量、队列上的订阅者数量、扇出队列上有数百或数千个侦听器的性能影响、任何人在高容量环境中运行兔子的任何硬数字。
Mic*_*lon 11
首先,您需要了解列表中哪些项目具有您可能会达到的缩放限制,哪些没有。其中一些是依赖于实现的,因此它有助于阅读内部结构,例如 RabbitMQ in Action 一书。
队列数量受您的 RAM 限制。另一方面,正在播放的消息数量不受 RAM 限制,因为 RabbitMQ 会自动将它们分页到磁盘。有一次,我不小心在开发服务器上收到了将近 800 万条消息。
消息大小也没有限制,但是如果单个消息的大小超过 512K,您确实应该三思。我最终使用内存缓存在应用程序之间传递大对象,并且只发送包含内存缓存键的较小控制消息。但是,如果您真的想要,您可以将巨大的 JPEG 和二进制对象(如 JAR 文件)作为消息发送。
订阅者的数量是操作系统限制,因为订阅者需要至少打开一个 TCP 套接字。当然,这在大多数操作系统中都是可调的,因此您的里程会有所不同,这就是您必须测试模型的原因。我一直在使用 JMETER 对我们的 Web 应用程序进行负载测试,我刚刚发现了这个 AMQP 插件https://github.com/jlavallee/JMeter-Rabbit-AMQP但还没有使用它。无论如何,这种测试会很快告诉您您的硬件(或 VM 配置)将合理处理什么。
唯一困难的是测试大量消费者到扇出队列。您可能还想使用主题交换进行比较,消费者使用通配符 (*) 绑定键进行订阅,从而获得相同的最终结果。尝试在尽可能多的不同机器上运行此测试,以确保您不会以某种方式遇到由运行消费者进程的单个服务器引起的瓶颈。PS,Jmeter插件看起来也可能对模拟消费者有用。
这不是一个真正可以回答的问题 - 有太多因素(“平均”硬件的移动定义,队列中消息的大小,消费者的数量以及他们轮询的频率/他们完成消息工作的速度等.) 您确实需要对您的环境进行基准测试。
也就是说,请查看有关 RabbitMQ 性能的一些讨论(包括有关如何对安装进行基准测试以了解对 Rabbit 的期望)的一些想法:
| 归档时间: |
|
| 查看次数: |
16158 次 |
| 最近记录: |