核心架构
Producer: 生产者,把相关的信息发送给RabbitMQConsumer: 消费者,处理Queue中累计的信息Connection: 连接,一个Connection是一个TCP连接,里面有多个ChannelChannel: 信道,是管理信息传输的基本单位,Connection和Channel就是体现了IO多路复用Exchange: 交换机,它是负责把生产者发送的消息传输给对应的Queue, 起到路由的作用Queue: 队列,用来存储生产者生产的信息Virtual Host: 虚拟机,和Vmware这样的虚拟机是不同的概念,这里的虚拟机是类似MySQL中的database, 是管理队列和交换机的Broker:RabbitMQ服务端
工作模式
在 Java 中 RabbitMQ 实现了七种工作模式,分别是简单模式,工作队列模式,发布订阅模式,
简单模式
但是在
RabbitMQ中是有交换机的,但是在这个模式下交换机仅仅起到转发的作用,因此就淡化了
工作队列模式
发布订阅模式
交换机
RabbitMQ 中的交换机有四种类型:Fanout(广播), Direct(定向), Topic(通配符) 和 headers
01-快速入门-交换机-广播模式 Fanout: 广播,将生产者生成的消息转发给所有的绑定的队列,适用于天气预报等01-快速入门-交换机-定向模式 Direct: 定向,只会把消息转发给指定的 routing key,默认的交换机就是采用这个类型01-快速入门-交换机-通配符模式 Topic: 通配符,通过一些特定的规则,把内容分配给符合规则的队列header: 通过内容来匹配,这个效率太低,一般不使用
路由模式
这个和 交换机 中的定向模式一样,这里就不说了
通配符模式
这个和 交换机 中的通配符模式一样,这里也不说了
RPC 模式
RPC 模式是生产者发送给消费者消息,然后消费者处理完消息后会根据生产者发送消息的属性,把内容传给指定的生产者。
这个是适用于比较复杂的系统文件
发布确认模式
这个模式和网络中的 TCP 差不多,都有 ACK 应答机制。只不过在 RabbitMQ 中,是 “生产者-队列” 之间的应答,而不是 “生产者-消费者” 之间的应答