让我们在Twitter上说,一位名人更新了她的身份,并将其推向了她的所有追随者。
如果我们设置队列,发布者是获取名人地位的服务,而消费者是单个关注者。但是拥有一百万的关注者,谁首先收到该消息,谁会看到更新,而其他人则不会?什么是常见的模式,以便她的每个关注者都能看到更新而不会彼此“竞争”以首先使用该消息?
答案 0 :(得分:0)
我想您认为排队系统仅具有进行点对点通信的能力,即生产者可以排队等待消费者。这是部分正确的。大多数排队系统至少有两种模式:
生产者-消费者:在这种情况下,仅将一条消息传递给一个消费者,即,如果有多个消费者,则它们相互竞争以从“队列”中获取消息。
发布-订阅:在这里,发布者将消息推送到“主题”上,消费者订阅该主题以获取消息。消费者之间没有竞争-每个消费者订阅了所有消息。
在您的示例中,它实际上是发布-订阅模式。底层实现可能有所不同,但基本模式是发布-订阅模式。