简单队列模型 publisher -----> queue ----> consumer publisher:消息发布者,将消息发送到队列 queuequeue:消息队列,负责接收并缓存消息 consumer:订阅队列,处理队列中的消息
publisher:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给exchange(交换机)
exchange:交换机,一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。
exchange种类:
- Fanout:广播,将消息交给所有绑定到交换机的队列
- Direct:定向,将消息交给符合routingKey的队列
- Topic:主题(使用通配符),将消息交给符合routing pattern(路由模式)的队列
consumer:消费者,订阅队列,消费消息
queue:队列,接收消息,缓存消息
参考文章
Exchange(交换机)
Exchange是一个比较重要的概念,它是消息到达RabbitMQ的第一站,主要负责根据不同的分发规则将消息分发到不同的Queue,供订阅了相关Queue的消费者消费到指定的消息。那Exchange有哪些分发消息的规则呢?这就要说到Exchange的4种类型了:direct、fanout、topic、headers。
在介绍这4种类型的Exchange之前,我们先来了解一下另外一个比较重要的概念:Routing key,翻译成中文就是路由键。当我们创建好Exchange和Queue之后,需要使用Routing key(通常叫作Binding key)将它们绑定起来,producer在向Exchange发送一条消息的时候,必须指定一个Routing key,然后Exchange接收到这条消息之后,会解析Routing key,然后根据Exchange和Queue的绑定规则,将消息分发到符合规则的Queue中。



