【问题标题】:RabbitMQ message storage and consumptionRabbitMQ 消息存储和消费
【发布时间】:2017-11-13 11:13:03
【问题描述】:

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

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:

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

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

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

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

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

    更多关于 Exchange here:

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

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

    【讨论】:

      猜你喜欢
      • 2016-12-15
      • 2020-04-20
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多