【发布时间】:2017-11-13 11:13:03
【问题描述】:
我是 RabbitMQ 的新手。在 RabbitMQ 中,一旦消息被消费者消费,它仍然可以在队列中使用吗?来自特定队列的单个消息可以被多个消费者消费吗?与 Kafka 不同,消息存储在文件系统中,它是如何存储在 RabbitMq 中的?
【问题讨论】:
标签: rabbitmq
我是 RabbitMQ 的新手。在 RabbitMQ 中,一旦消息被消费者消费,它仍然可以在队列中使用吗?来自特定队列的单个消息可以被多个消费者消费吗?与 Kafka 不同,消息存储在文件系统中,它是如何存储在 RabbitMq 中的?
【问题讨论】:
标签: rabbitmq
来自特定队列的单个消息可以被多个消费者消费吗?
是的,很有可能,您可以使用扇出交换来存档。有各种类型的交易所。
直接:一对一,一旦发送给消费者,消息就会消失,您可以手动或自动处理确认模式。直接交换根据消息路由键将消息传递到队列。
Fanout:一对多,一条消息可以被多个监听器恢复。扇出交换将消息路由到绑定到它的所有队列,并且忽略路由键
主题:主题根据消息路由键与用于将队列绑定到交换器的模式之间的匹配,将消息路由到一个或多个队列
更多关于 Exchange here:
与 Kafka 不同,消息存储在文件系统中,它是如何存储在 RabbitMq 中的?
默认情况下,RabbitMQ 会将消息存储在内存中,如果您愿意,您可以根据需要启用消息persistence 和 HA Polity(用于镜像)作为可选配置。然而,它会带来性能成本,它会通过节流(涉及 I/O 操作)降低您的吞吐量。
【讨论】: