【问题标题】:Azure storage queues: dequeue strategy other than FIFOAzure 存储队列:FIFO 以外的出列策略
【发布时间】:2015-04-21 23:25:35
【问题描述】:

有没有人想过为 Azure 存储队列实施策略,允许以任意顺序(除了先进先出)使消息出队。例如,有些人可能对 LIFO 感兴趣,有些人可能希望将“重要”消息排在不太重要的消息之前,等等。

就个人而言,我有兴趣实施一种策略,该策略允许多租户系统中的消息出队,以确保与特定租户相关的大量消息不会导致其他租户的消息延迟。

我也对其他可能实施了类似策略的排队系统感兴趣。 是否有其他排队系统允许这种方式

【问题讨论】:

  • 您终于找到适合这种情况的解决方案了吗?我在共享环境中也有同样的需求。
  • 我从未找到让我完全满意的解决方案。我想出的最好的方法是创建任意数量的队列,例如 4 个,并将每个租户分配给这些队列之一。在一个租户产生大量消息的情况下,只有 1/4 的租户会受到影响。这显然不是一个完美的解决方案,但如果你只有一个队列,总比让所有租户都受到影响要好。

标签: azure queue storage


【解决方案1】:

您要查找的内容称为优先队列模式,您可以阅读有关here 的更多信息。

有几种策略可以实现这一目标。一种是对更高优先级的消息使用不同的队列。或者在您的情况下,每个客户都有一个队列。

另一种方法,我更喜欢您的方案,是使用 ServiceBus 主题和订阅(基本上是发布/订阅)。

上面提供的链接中更详细地讨论了这两个问题。

【讨论】:

  • 非常有趣的文章。感谢您的链接。但是,这种模式似乎更适合预先知道“级别”或“优先级”的场景(本文以“高”和“低”优先级为例)。不知道优先级的场景呢,在事实会随着时间而变化?
【解决方案2】:

优先队列模式是要走的路。对不同的消息优先级使用不同的队列。您还可以为每个队列分配适当数量的工作人员,以适当的速度排出。

【讨论】:

  • 谢谢杰森。对于优先级未知且可能随时间变化的场景的任何建议。我对每个租户都有自己的“主题”或“优先级”并且租户定期添加到系统中的场景感兴趣。
猜你喜欢
  • 2021-01-19
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 2020-10-15
  • 2014-01-28
  • 2016-03-04
相关资源
最近更新 更多