【问题标题】:Replacing items in message queue替换消息队列中的项目
【发布时间】:2020-06-01 22:58:28
【问题描述】:

我们的系统要求表明我们需要构建一个稍微不寻常的生产者-消费者处理系统。想象一下,我们有多个数据流,我们每 X 秒拍摄一个快照并将其放入队列中进行处理。流数不是恒定的。我们拥有的客户越多,我们需要处理的流就越多。同时,我们不需要处理所有拍摄的快照。如果我们有太多的客户并且我们无法实时处理所有项目,我们宁愿跳过旧的快照并只处理最新的快照。

因此,正如我所见,可以通过在每个流的队列中只保留一个项目来满足要求。如果有一个新的快照,而前一个快照仍然存在,我们需要使用流 id 作为键来替换它。 是否可以通过服务总线队列或类似的东西来实现这种行为?或者也许研究一下 Redis 等其他解决方案是有意义的?

【问题讨论】:

    标签: message-queue azureservicebus


    【解决方案1】:

    因此,正如我所见,只需在一个项目中保留一项即可满足要求 每个流的队列。如果有新的快照,而前一个 仍然存在,我们需要使用流 id 作为键来替换它。是吗 可以通过服务总线队列或其他东西来实现这种行为 类似?

    据我所知,Azure 服务总线不支持这种情况。通过它的duplicate detection 功能,实际上它支持完全相反的功能。您需要使用其他一些机制(例如您提到的 Redis Cache)来完成此操作。

    【讨论】:

      猜你喜欢
      • 2010-09-19
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      相关资源
      最近更新 更多