【发布时间】:2012-10-14 05:50:42
【问题描述】:
我目前正在评估 RabbitMQ 来管理队列。我想知道 RabbitMQ 是如何管理内存中的队列项的。
在此发布者订阅者示例中 http://www.rabbitmq.com/tutorials/tutorial-three-python.html
是否为每个订阅者(消费者)创建队列?例如,如果我有两个消费者,那么我将内存使用量翻倍来存储消息?
我的印象是,如果我在一个队列上附加多个工作人员,那么它将成为一个工作队列,每个消费者都会收到不同的消息。
假设我正在为此构建聊天服务器。我需要为每个消费者创建一个队列吗?并且内存中的每条消息都会乘以连接的用户数?还是内存中只有一条消息,每个队列都有指向该消息的指针。
同样在主题消息的示例中。 http://www.rabbitmq.com/tutorials/tutorial-five-python.html
假设我有 1kb 的消息。那么2个队列有2kb的内存使用吗? Q1、Q2 和说消息匹配所有的绑定键。
如果我添加另一个队列来收听,让 lazy.blue.* 作为 Q3。这会在内存中创建一个新的队列项吗?并复制数据?
【问题讨论】:
标签: memory-management erlang queue rabbitmq message-queue