gpt4 book ai didi

rabbitmq - AMQP/RabbitMQ - 如何避免竞争条件

转载 作者:行者123 更新时间:2023-12-03 21:34:50 25 4
gpt4 key购买 nike

我有以下架构:
Architecture

  • 有固定数量的输入源。每个输入源都是等效的。
  • AMQP 代理。在我的情况下,我正在使用 RabbitMQ。
  • 目前,有2个消费者。同样,每个消费者都是等价的。

  • 输入源正在发送要处理的命令。这些命令由代理转发并由两个消费者之一接收。

    我需要以下行为:
  • 如果一个输入源发送多个命令,则所有命令必须依次处理。即在2条命令的例子中,是不允许 消费者 1 正在处理命令 1,同时消费者 2 正在处理命令 2。
  • 但是,可以同时处理源自两个不同输入源的两个命令。

  • 是否可以使用 AMQP/RabbitMQ 强制执行此行为?

    最佳答案

    您可以为每个队列使用一个使用者来涵盖您的场景。
    每个队列可以顺序处理消息。

    另一种方法是只使用一个队列并使用 envelope.getExchange()了解源码,或tag您的消息使用 AMQP.BasicProperties properties
    这样,例如,您可以在多线程中消费消息,并为每个 tag 分配一个线程。

    关于rabbitmq - AMQP/RabbitMQ - 如何避免竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37393740/

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