RabbitMQ 核心名词简介
Publisher:消息生产者
Exchange: 交换器,用来接收生产者发送的消息并将这些消息根据路由键和队列的绑定关系路由给服务器中的队列
Exchange有4种类型:direct(默认),fanout, topic, 和headers:
diract: 完全匹配策略,交换器的路由键key必须和binding中的路由key完全一直,才能发送消息到对应的消息队列,点对点模式;
fanout: 广播策略,不进行路由键的匹配,把消息发送给所有绑定了该交换器的队列,由于不进行路由键的匹配处理,速度最快
topic: 通配符匹配主题策略, 交换器通过模式匹配分配消息的路由键属性,将路由键和某个模式进行匹配,此时队列需要绑定到一个模式上。它将路由键和绑定键的字符串切分成单词,这些单词之间用点隔开。它同样也会识别两个通配符:符号“#”和符号“*”。#匹配0个或多个单词,*匹配一个单词
headers: 基本不用,匹配的是消息内的header,不是匹配的路由键,性能很差
Queue:消息队列
Binding:绑定关系,用来表示绑定交换器和队列的关联,一个交换器能指定多个队列,也可以是多对多的关系
路由键: 通过路由键的key来匹配到交换器和队列的绑定关系
Channel :
多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的TCP连接内的虚拟连接,AMQP 命令都是通过信道发出去的,不管是发布消息、订阅队列还是接收消息,这些动作都是通过信道完成。因为对于操作系统来说建立和销毁 TCP 都是非常昂贵的开销,所以引入了信道的概念,以复用一条 TCP 连接。
Consumer:消息消费者
Virtual Host :虚拟主机,表示一批交换器、消息队列和相关对象。虚拟主机是共享相同的身份认证和加密环境的独立服务器域。每个 vhost 本质上就是一个 mini 版的 RabbitMQ 服务器,拥有自己的队列、交换器、绑定和权限机制。vhost 是 AMQP 概念的基础,必须在连接时指定,RabbitMQ 默认的 vhost 是 / 。
Broker: 表示消息队列服务器实体,就是一个rabbitmq服务器
1. 使用docker 简单安装