gpt4 book ai didi

queue - 集群中的 RabbitMQ 队列持久性

转载 作者:行者123 更新时间:2023-12-04 06:43:04 24 4
gpt4 key购买 nike

我有一个问题,我似乎无法找到答案。
这是我第一次在“大”应用程序中使用 RabbitMQ,我想知道队列在集群中是如何工作的。
我知道路由信息(队列、交换、绑定(bind))位于集群中的所有节点上,但队列本身位于创建它的机器上。我正在创建一些持久的持久队列。如果我将持久性消息写入集群中 MachineA 上的队列,它们会被写入磁盘,然后我将消息写入同一队列的 MachineB,它们会被“重定向”到 MachineA 还是会被写入 MachineB 的磁盘?

我担心的是我将每秒处理数千条消息,并且不希望磁盘速度成为瓶颈。如果它确实在内部以某种方式重定向消息,我将不得不实现某种类型的分片,这很糟糕:(

让我知道伙计们:)

最佳答案

正如您所说,在 RabbitMQ 集群中,队列仅驻留在声明它的节点上。

当您发布到不同节点上的该队列时,消息被路由到正确的机器,最终被写入磁盘。

这里的关键词是最终。任何消息(无论是发布的持久消息还是 transient 消息,在持久或非持久队列上)都可能被持久化到磁盘。发布到持久队列的持久消息只是对代理的强烈暗​​示,即消息应尽快写入磁盘。也就是说,不能保证消息会被写入,因此磁盘通常不会成为瓶颈(如果内存不足则异常(exception))。

如果你想要保证交货,那是一个不同的问题。

关于queue - 集群中的 RabbitMQ 队列持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4005489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com