【发布时间】:2015-01-20 12:56:52
【问题描述】:
让我们考虑下面的场景。
在集群模型中部署了 3 个 RabbitMQ 代理(B1、B2、B3)。有一个带有绑定的交换 E,它被复制到所有 3 个代理。有一个生产者 P 和 3 个消费者 C1,C2,C3。我有以下问题
假设生产者连接到代理 B1 并创建一个镜像到 B2 的队列 Q。现在当消费者连接到 Broker B3 时,它如何获取队列中的消息?
据我了解,交换和绑定信息保存在每个代理的内存中。如果交换是持久的,为了从broker崩溃中恢复,交换和绑定信息是否也在所有broker的磁盘中持久化?
如果整个队列都维护在所有镜像代理的内存中,它会消耗代理中的大量内存。为了支持潜在的大量队列,每个队列在每个代理中都包含数百万条消息,这不是对可伸缩性的限制吗?
【问题讨论】:
标签: rabbitmq message-queue amqp