消息队列:是否存在多个消费者使用消息的用例?

问题描述 投票:0回答:1

让我们在推特上说,一位名人更新了她的状态,并将其推向了所有的追随者。

如果我们设置队列,那么发布者是获取名人状态的服务,而消费者是个人粉丝。但是有一百万粉丝,谁先收到这条消息会看到更新,而其他人不会?这里使用的常见模式是什么,以便她的每个关注者都能看到更新,而不是“互相竞争”以首先消费该消息?

twitter architecture queue messaging
1个回答
0
投票

我猜你在考虑排队系统只能进行点对点通信,即生产者排队到消费者。这部分是正确的。大多数排队系统至少有两种模式:

  1. 生产者 - 消费者:在这种情况下,消息仅传递给一个消费者,即,如果有多个消费者,他们相互竞争以从“队列”获取消息。
  2. 发布 - 订阅:这里,发布者在“主题”上推送消息,消费者订阅该主题以获取消息。消费者不会参与竞争 - 每个消费者在订阅后都会获得所有消息。

在您的示例中,它是发布 - 订阅模式。底层实现可能不同,但基本模式是发布 - 订阅。

参考:https://stackoverflow.com/a/42477769/6886283

© www.soinside.com 2019 - 2024. All rights reserved.