跳到主要内容

01、RabbitMQ 实战 - RabbitMQ简介

1、 RabbitMQ概念;

RabbitMQ是一个消息中间件,不对消息进行处理,只对消息做接收、存储和转发。

2、 RabbitMQ四大核心概念;

(1)生产者

产生数据发送信息的程序

(2)交换机

交换机是RabbitMQ中一个非常重要的部件,接收来着生产者的消息并把消息推送到队列中

(3)队列

队列是RabbitMQ中使用的一种数据结构,生产者将消息发送到队列里,许多消费者尝试从一个队列里接收数据

(4)消费者

接收信息的程序

 

3、 RabbitMQ模式;

(1)简单模式(Hello World)

(2)工作模式(Work queues)

(3)发布订阅模式(Publish/Subscribe)

(4)路由模式(Routing)

(5)主题模式(Ropics)

(6)发布确认模式(Publisher Confirms)

4、 RabbitMQ名词介绍;

Broker:接收和分发消息的应用,RabbitMQ Server就是Message Broker。

Virtual host:出于多租户和安全因素设计的,把 AMQP的基本组件划分到一个虚拟的分组中,类似于网络中的namespace概念。当多个不同的用户使用同一个RabbitMQ server提供的服务时,可以划分出多个vhost,每个用户在自己的vhost创建exchange / queue等

Connection: publisher / consumer和broker之间的TCP连接

Channel:如果每一次访问RabbitMQ都建立一个Connection,在消息量大的时候建立TCPConnection的开销将是巨大的,效率也较低。Channel是在connection 内部建立的逻辑连接,如果应用程序支持多线程,通常每个thread创建单独的channel进行通讯,AMQP method包含了channel id帮助客户端和message broker识别channel,所以channel之间是完全隔离的。Channel作为轻量级Connection极大减少了操作系统建立TCP connection的开销

Exchange: message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到queue 中去。常用的类型有: direct (point-to-point), topic(publish-subscribe) and fanout

(multicast)