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

时间:2019-04-28 13:40:10

标签: twitter architecture queue messaging

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

如果我们设置队列,发布者是获取名人地位的服务,而消费者是单个关注者。但是拥有一百万的关注者,谁首先收到该消息,谁会看到更新,而其他人则不会?什么是常见的模式,以便她的每个关注者都能看到更新而不会彼此“竞争”以首先使用该消息?

1 个答案:

答案 0 :(得分:0)

我想您认为排队系统仅具有进行点对点通信的能力,即生产者可以排队等待消费者。这是部分正确的。大多数排队系统至少有两种模式:

  1. 生产者-消费者:在这种情况下,仅将一条消息传递给一个消费者,即,如果有多个消费者,则它们相互竞争以从“队列”中获取消息。

  2. 发布-订阅:在这里,发布者将消息推送到“主题”上,消费者订阅该主题以获取消息。消费者之间没有竞争-每个消费者订阅了所有消息。

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

引用:https://stackoverflow.com/a/42477769/6886283