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

Twitter 消息队列:是否存在多个使用者使用消息的用例?,twitter,architecture,queue,messaging,Twitter,Architecture,Queue,Messaging,比如说,在推特上,一位名人更新了她的状态,并将其推给了她的所有追随者 如果我们设置队列,其中发布者是获取名人状态的服务,消费者是个人追随者。但是有一百万粉丝,谁先收到这条消息谁就会看到更新,而其他人不会?这里使用的一种常见模式是什么,这样她的每一个追随者都能看到更新,而不是互相“竞争”先消费消息?我猜您认为排队系统只有点对点通信的能力,即生产者对消费者的排队。这在一定程度上是正确的。大多数排队系统至少有两种模式: 生产者-消费者:在这种情况下,一条消息只传递给一个消费者,即,如果有多个消费者,他

比如说,在推特上,一位名人更新了她的状态,并将其推给了她的所有追随者


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

我猜您认为排队系统只有点对点通信的能力,即生产者对消费者的排队。这在一定程度上是正确的。大多数排队系统至少有两种模式:

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

  • 发布-订阅:在这里,发布者在“主题”上推送消息,消费者订阅主题以获取消息。消费者没有竞争——每个消费者在订阅后都会收到所有消息

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


    请参阅:

    消息队列不是为发布者不知道使用者是谁,也不知道使用者何时处理消息的异步处理用例而设计的吗?