Rabbitmq工作模式及架构
1、核心概念
1.1 生产者
产生数据发送消息的程序是生产者
1.2 交互机
交换机是 RabbitMQ核心部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中
交换机类型决定
如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,或者是把消息丢弃
1.3 队列
队列是 RabbitMQ 内部使用的一种数据结构
- 消息存储在队列中
- 队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓冲区
- 生产者将消息发送到队列
- 消费者从队列消费数据
1.4 消费者
消费消息数据的程序是消费者,同一个应用程序既可以是生产者又是可以是消费者
2 、基础架构
3、名词介绍
Broker:接收和分发消息的应用,RabbitMQ Server
Virtual host:出于多租户和安全因素设计的,当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出
多个 vhost,每个用户在自己的 vhost 创建 exchange/queue 等
Connection:publisher/consumer 和 broker 之间的 TCP 连接
Channel:Channel 是在 connection 内部建立的逻辑连接,在每个Connection里,可以创建多个Channel,每个Channel代表一次会话,AMQP method 包含了 channel id 帮助客户端和 message broker 识别 channel,所以 channel 之间是完全隔离的。Channel 作为轻量级的Connection 极大减少了操作系统建立 TCP connection 的开销
Exchange:交换机, message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到 queue 中去
Queue:队列,每个消息最总都被送到这里,等待consumer消费
Binding: exchange 和 queue 之间的虚拟连接,binding 中可以包含 routing key,Binding 信息被保存到 exchange 中的查询表中,用于 message 的分发依据
4、工作模式
查看官网 rabbitmq官网 共有7种工作模式
后面文章一一介绍