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