RabbitMQ消息的存储和消费

时间:2017-06-12 04:51:20

标签: rabbitmq

我是RabbitMQ的新手。在RabbitMQ中,一旦消息被消费者使用,它仍然可以在队列中使用吗?来自特定队列的单个消息是否可以被多个消费者使用?与消息存储在文件系统中的Kafka不同,它是如何存储在RabbitMq中的?

1 个答案:

答案 0 :(得分:3)

  

多个消费者可以使用来自特定队列的单个消息吗?

是的,非常有可能,您可以使用扇出交换存档。有各种类型的交易所。

直接:一对一,一旦传递给消费者,消息就会消失,您可以手动或自动处理确认模式。直接交换基于消息路由密钥将消息传递到队列。

扇出:多个侦听器可以恢复一个到多个消息。扇出交换将消息路由到绑定到它的所有队列,并忽略路由密钥

主题:主题根据消息路由键与用于将队列绑定到交换机的模式之间的匹配,将消息路由到一个或多个队列

有关Exchange here的更多信息:

  

与Kafka不同,消息存储在文件系统中,它是如何存储在RabbitMq中的?

默认情况下,RabbitMQ会将消息存储在内存中,如果您愿意,可以根据您的要求启用消息persistence和HA Polity(用于镜像)作为可选配置。然而,它会带来性能成本,它会通过限制来降低吞吐量(涉及I / O操作)。

enter image description here