gpt4 book ai didi

RabbitMQ - 如何联合/镜像消息

转载 作者:行者123 更新时间:2023-12-01 07:55:54 26 4
gpt4 key购买 nike

我设置了两个节点,A 和 B。两者都安装了联合插件的 RabbitMQ。

从 Web UI 中,我可以看到 A 和 B 上的“联合状态”>“状态”正在“运行”。

在 A 上,我创建了一个名为“test1”的队列。

在 B 上,我可以看到“test1”队列(从 A 复制)。

在 A 上,我添加了一条消息。

但是,消息不会出现在 B 上的复制队列中 - 消息保留在 A 上。

这是我在 A 和 B 上使用的策略:
rabbitmqctl set_policy --apply-to exchanges my-queue "test1" \
'{"federation-upstream-set":"all"}'

所以,它是这样的:A(上游)-> B(下游)和B(上游)-> A(下游)

我应该看到消息复制到 A 和 B 吗?我是否错误地配置了方向?

最佳答案

However, the message does not appear in the replicated queue on B - the message stays on A.



TL;DR:联合交换!=联合队列。

引用:
  • https://www.rabbitmq.com/federated-exchanges.html
  • https://www.rabbitmq.com/federated-queues.html

  • "How it works"关于联合队列的部分解释了:

    " The federated queue will only retrieve messages when it has run out of messages locally, it has consumers that need messages, and the upstream queue has "spare" messages that are not being consumed ... "



    "What does a federated exchange do?"解释:

    " ... messages published to the upstream exchanges are copied to the federated exchange, as though they were published directly to it ... "



    回顾:
  • 如果您使用联合队列,
    你需要一个需要消息的 B 端消费者(拉模型?)。
  • 如果您使用联合交易所,
    直接复制的消息(推送模型?)。

  • 用例

    冗余/备份

    联合交换复制消息( max-hops 副本),以便它们可用于冗余。

    例如。

    here is my data, back it up.



    内容分发网络

    联合交换复制消息( max-hops 副本),因此它们可用于跨区域分发内容(顺便说一句,这也是冗余),前提是您正确配置了拓扑。

    例如。

    hey everybody, please apply this security patch, which you can find at your nearest broker.



    负载均衡

    联合队列可用于负载平衡:如果一条消息在上游可用并且没有消费者来处理它,那么下游的自由消费者能够接收该消息并对其进行处理。摇滚吧。

    例如。

    I'm a computer, and I feel bored, can I help you? Any job you need me to do?



    双重打击

    联合交换 + 联合队列 = 可以将同一组任务分发到多个区域(集群),每个集群中的一个 worker 可以执行该作业。

    例如。

    It's end of the quarter, I need performance metrics for each region (cluster), each store manager (one node in cluster) will aggregate metrics (inside cluster), and we'll give gift cards to the top 3.

    关于RabbitMQ - 如何联合/镜像消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27220766/

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