RabbitMQ的架构有以下6个关键组件:
| Producer | 生产者 | 主要负责生产消息并发送给RabbitMQ |
|---|---|---|
| Exchange | 交换机 | 生产者发过来的消息并不是直接投进队列,而是 交给Exchange,让Exchange根据消息中的Routing Key来决定把它扔进哪个队列 |
| Queue | 队列 | 这是消息最终存放的地方,在这里等待被取走 |
| Binding | 绑定 | 把Exchange和Queue连接起来,告诉交换机这个消息需要扔进哪个队列 |
| Consumer | 消费者 | 从Queue中取出消息并处理 |
| Virtual Host | 虚拟主机 | VHost之间是完全隔离的,互不影响,通常用于区分不同的业务线 |
如果把RabbitMQ比作快递物流系统,那么6个关键组件分别对应的角色如下:
生产者 是发件人 ,交换机 是快递分拣中心 ,队列 就是快递仓库 ,绑定 就是分拣规则表 ,消费者 就是收件人 ,虚拟主机 就是快递分公司。
注意⚠️:
一个消息可以被拷贝到多个Queue,但是一个队列里的消息只能被消费一次。