:::tips 发布/订阅模型中添加了一个exchange角色,消息发送过程略有变化

    • Publisher:消息生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给exchange(交换机)
    • Exchange:交换机,图中的exchange。一方面接收生产者发送的消息,另一方面,知道如何处理消息。例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。Exchange有以下3种类型:
      • Fanout:广播,将消息交给所有绑定到交换机的队列
      • Direct:定向,把消息交给符合指定的RoutingKey(路由key)队列
      • Topic:通配符,把消息交给符合RoutingPattern(路由模式) 的队列
    • Consumer:消息消费者与以前一样,订阅队列,没有变化
    • Queue:消息队列也与以前一样,接收消息、缓存消息

    image.png

    exchange(交换机)只负责转发消息,不具备存储消息的能力,因此如果没有任何队列与exchange绑定,或者没有符合路由规则的队列,消息就会丢失

    在发布/订阅模型中,一条消息不止能被一个消息消费者接收,而是可以同时被多个消费者消费 :::