Skip to content

核心架构 ​

01-快速入门-RabbitMQ核心概念
01-快速入门-RabbitMQ核心概念
  • Producer: 生产者,把相关的信息发送给 RabbitMQ
  • Consumer: 消费者,处理 Queue 中累计的信息
  • Connection: 连接,一个 Connection 是一个 TCP 连接,里面有多个 Channel
  • Channel: 信道,是管理信息传输的基本单位,Connection 和 Channel 就是体现了 IO 多路复用
  • Exchange: 交换机,它是负责把生产者发送的消息传输给对应的 Queue, 起到路由的作用
  • Queue: 队列,用来存储生产者生产的信息
  • Virtual Host: 虚拟机,和 Vmware 这样的虚拟机是不同的概念,这里的虚拟机是类似 MySQL 中的 database, 是管理队列和交换机的
  • Broker: RabbitMQ 服务端

工作模式 ​

在 Java 中 RabbitMQ 实现了七种工作模式,分别是简单模式,工作队列模式,发布订阅模式,

简单模式 ​

01-快速入门-工作模式-简单模式
01-快速入门-工作模式-简单模式
简单模式就是只有一个生产者,一个队列和一个消费者。没有其他的功能,就起到发送的作用

但是在 RabbitMQ 中是有交换机的,但是在这个模式下交换机仅仅起到转发的作用,因此就淡化了

工作队列模式 ​

01-快速入门-工作模式-工作队列模式
01-快速入门-工作模式-工作队列模式
它是由一个生产者,一个队列和多个消费者组成。生产者的发送的总量和消费者的消费总量是一样的。同理,这里交换机也仅仅是起到转发的作用

发布订阅模式 ​

01-快速入门-工作模式-发布订阅模式
01-快速入门-工作模式-发布订阅模式
发布订阅模式也称作广播模式,它是会对把生产者生成的消息转发给所有绑定对应交换机的队列

交换机 ​

RabbitMQ 中的交换机有四种类型:Fanout(广播), Direct(定向), Topic(通配符) 和 headers

  • 01-快速入门-交换机-广播模式
    01-快速入门-交换机-广播模式
    Fanout: 广播,将生产者生成的消息转发给所有的绑定的队列,适用于天气预报等
  • 01-快速入门-交换机-定向模式
    01-快速入门-交换机-定向模式
    Direct: 定向,只会把消息转发给指定的 routing key,默认的交换机就是采用这个类型
  • 01-快速入门-交换机-通配符模式
    01-快速入门-交换机-通配符模式
    Topic: 通配符,通过一些特定的规则,把内容分配给符合规则的队列
  • header: 通过内容来匹配,这个效率太低,一般不使用

路由模式 ​

这个和 交换机 中的定向模式一样,这里就不说了

通配符模式 ​

这个和 交换机 中的通配符模式一样,这里也不说了

RPC 模式 ​

RPC 模式是生产者发送给消费者消息,然后消费者处理完消息后会根据生产者发送消息的属性,把内容传给指定的生产者。

这个是适用于比较复杂的系统文件

发布确认模式 ​

这个模式和网络中的 TCP 差不多,都有 ACK 应答机制。只不过在 RabbitMQ 中,是 “生产者-队列” 之间的应答,而不是 “生产者-消费者” 之间的应答