2

我们在生产中使用 rabbitmq 并且非常满意。我们计划使用rabbitmq fanout 功能,但想了解其内部结构。

以下是我的问题:
1. 当消息被扇出到多个队列时,消息是否被复制到不同的队列而不仅仅是引用?
2.如果整个消息在所有扇出队列上都重复,有没有办法让它变得高效?

谢谢你,
-巴拉

4

1 回答 1

0

为了存储 AMQP 消息内容,RabbitMQ 使用“二进制文件”,这是 Erlang 中的一种特殊类型。

Erlang VM 仅在它们足够小的情况下复制这些二进制文件(如果我没记错的话,限制是 64 字节),否则,它使用引用计数。Erlang 文档中有一章是关于如何实现二进制文件的。您应该对第 4.1 段感兴趣。

于 2016-03-18T16:13:51.147 回答