【问题标题】:RabbitMQ message processing by specific orderRabbitMQ 消息按特定顺序处理
【发布时间】:2019-03-02 23:19:09
【问题描述】:

如果我需要确保另一条消息(具有相同的产品 ID)同时未被其他消费者处理,我想知道处理队列中消息的最佳做法是什么。 我的问题是,如果有人使用产品 ID 下订单和订购,而另一条消息带有相同的产品,我想一个一个地处理它们,但不是并行处理。 我正在考虑使用 redis 来保存正在处理的 id 并在处理结束后清除它们。但是对于这种情况,也许有一些更好的解决方案。

【问题讨论】:

  • 消息是否有单独的队列或者它们是同一队列中的相同消息?
  • 消息在同一个队列中...

标签: rabbitmq amqp


【解决方案1】:

在 rabbitmq 中,同一队列中的消息按“发布顺序”排序。这意味着,消息将按照发送到队列的顺序被接收。

看看消息的排序:https://www.rabbitmq.com/semantics.html#ordering

如果你想完全按照发布顺序消费消息,你应该使用一个队列的“直接交换”。

您还必须有一个消费者,并发限制设置为一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 2014-05-18
    相关资源
    最近更新 更多