RabbitMQ消息存储和消耗

RabbitMQ消息存储和消耗,rabbitmq,Rabbitmq,我是拉比犬的新手。在RabbitMQ中,消息一旦被使用者使用,它在队列中是否仍然可用?来自特定队列的单个消息能否被多个使用者使用?与Kafka不同,Kafka将消息存储在文件系统中,它是如何存储在RabbitMq中的 来自特定队列的单个消息能否被多个使用者使用 是的,非常有可能,您可以使用扇出exchange将其存档。有各种类型的交换 直接:一对一,一旦发送给消费者,消息将消失,您可以手动或自动处理确认模式。直接交换根据消息路由密钥将消息传递到队列 扇出:一对多,多个侦听器可以恢复一条消息。扇出

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

来自特定队列的单个消息能否被多个使用者使用

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

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

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

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

有关Exchange的更多信息:

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

默认情况下,RabbitMQ将消息存储在内存中,如果需要,可以根据需要将消息和HA策略(用于镜像)作为可选配置启用。然而,它会带来性能成本,它会通过节流(I/O操作)降低吞吐量