正如标题所说 - 当达到最大值时,是否可以声明最大队列大小和代理行为?或者这是特定于经纪商的选择?
我问,因为我正在尝试了解AMQP,而不是因为我对任何特定经纪人都有这个具体问题......但是经纪人特定的答案仍然很有见地.
抱歉,您无法使用RabbitMQ声明最大队列大小。
同样在AMQP sepc中没有这样的设置:
http://www.rabbitmq.com/amqp-0-9-1-1-quickref.html#queue.declare
根据您提出的原因,您可能实际上不需要最大队列大小.从版本2.0开始,RabbitMQ将无缝地将大型队列持久保存到磁盘,而不是将所有消息存储在RAM中.因此,如果您担心代理因为耗尽资源而崩溃,那么在大多数情况下这实际上并不是一个大问题 - 假设您没有担心硬盘空间.
通常,这种持久性实际上对性能影响很小,因为根据定义,队列中唯一的"热"部分是头部和尾部,它们保留在RAM中; 积压的大部分是"冷",所以它坐在磁盘上没什么区别.
我们最近发现,在高吞吐量下它并不那么简单 - 在某些情况下,吞吐量会随着队列的增长而恶化,这会导致无限制的队列增长.但是,当发生这种情况是CPU的一个功能时,我们花了很长时间没有碰到它.
| 归档时间: |
|
| 查看次数: |
5497 次 |
| 最近记录: |