gpt4 book ai didi

RabbitMQ:使用一致的哈希交换扩展队列

转载 作者:行者123 更新时间:2023-12-03 14:45:17 30 4
gpt4 key购买 nike

(从 Github Issue 接听)

我们使用 RabbitMQ 的 consistent hash exchange这对于将路由键从交换分片到多个队列很有用。

我们使用队列将工作分配给 worker 。理想情况下,我们希望动态扩展这些 worker ,但这会带来问题。

要扩大规模,您需要添加一个新队列和绑定(bind)。就其本身而言,这并不是什么大问题 - 除了分片键现在可能开始进入不同队列的事实。

所以 Worker A 可能一直在管理 Thing1,但现在当我们添加新队列时,Worker B 可能最终会收到 Thing1 的消息。在 Worker B 开始接收 Thing1 消息之前,Worker A 必须完成所有 Thing1 处理,这一点很重要。

他们有什么方法或插件可以缓解这个问题吗?

最佳答案

在这种情况下,我将使用一个调度消息的工作人员而不是散列交换。

producer1 ... producern => topic-exchange => queue => dispatcher worker => queue1 ... queuen => worker1 ... worker

这样,调度员工作人员可以跟踪所有消息。为此,您可以简单地检查队列中剩下多少消息,或者您可以检查工作人员确认消息,或者您可以使用 rabbitmqs RPC 功能。

关于RabbitMQ:使用一致的哈希交换扩展队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38872992/

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