RabbitMQ 基本概念
RabbitMq基本概念
-
AMQP
- Broker: 接收和分发消息的应用,RabbitMq 就是 Broker
- Virtual Host: 虚拟 Broker,将多个单元隔开
- Connection: publisher /comsumer和 broker 的 TCP 链接
- Channel: connection 内部建立连接的逻辑连接, 通常每个线程创建单独的 channel
- Routing Key: 路由键, 用来指定消息的路由转发,相当于快递的地址
- Exchange: 交换机,相当于快递的分拨中心
- Queue: 消息最终被送到这里等待 consumer 取走
- Binding: exchange 和 queue 之间的虚拟连接,用于 message 的分发依据
-
核心概念 Exchange
- 作用:是 AMQP 和 RabbitMQ 的核心组件
- 根据绑定关系和路由键为消息提供路由,将消息转发至相应的队列
- 有四种类型:
- Direct
- topic
- Fanout
- Headers(使用较少)
- 作用:是 AMQP 和 RabbitMQ 的核心组件
-
Direct Exchange: 当 Routing Key 和 Binding Key 一致时, Direct Exchange 直接将 message 发送到对应队列
- Fanout Exchange: 每个 Fanout Exchange 的 message 都会分发到所有绑定的 queue 上去的
- Topic Exchange: 根据 Routing Key 及通配规则,Topic Exchange 将消息分发到目标 MQ 中
- Routing Key 和 Binding Key 完全一致时, 与 Direct 相同
- Binding Key 中的#: 匹配任意个数的 word
- Binding Key 中的*: 匹配1个 word