Python知识分享网 - 专业的Python学习网站 学Python,上Python222
RabbitMQ详解(值得珍藏)PDF 下载
发布于:2024-02-21 12:04:22
(假如点击没反应,多刷新两次就OK!)

RabbitMQ详解(值得珍藏)PDF 下载  图1

 

 

资料内容:

 

1. 基本概念
RabbitMQ是一款开源,使用Erlang编写的,基于AMQP协议的消息中间件;
提到RabbitMQ,就不得不提AMQP协议。AMQP协议是具有现代特征的二进制协议。是一个提供统一消息服
务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。先了解一下
AMQP协议中间的几个重要概念:

Server:接收客户端的连接,实现AMQP实体服务。

Connection:连接,应用程序与Server的网络连接,TCP连接。

Channel:信道,消息读写等操作在信道中进行。客户端可以建立多个信道,每个信道代表一个会话任

务。

Message:消息,应用程序和服务器之间传送的数据,消息可以非常简单,也可以很复杂。由

Properties和Body组成。Properties为外包装,可以对消息进行修饰,比如消息的优先级、延迟等高级
特性;Body就是消息体内容。
          Virtual Host:虚拟主机,用于逻辑隔离。一个虚拟主机里面可以有若干个Exchange和Queue,同一个
虚拟主机里面不能有相同名称的Exchange或Queue。
          Exchange:交换器,接收消息,按照路由规则将消息路由到一个或者多个队列。如果路由不到,或者
返回给生产者,或者直接丢弃。RabbitMQ常用的交换器常用类型有direct、topic、fanout、headers
四种,后面详细介绍。
           Binding:绑定,交换器和消息队列之间的虚拟连接,绑定中可以包含一个或者多个RoutingKey。
RoutingKey:路由键,生产者将消息发送给交换器的时候,会发送一个RoutingKey,用来指定路由规
则,这样交换器就知道把消息发送到哪个队列。路由键通常为一个“.”分割的字符串,例如
“com.rabbitmq”。
            Queue:消息队列,用来保存消息,供消费者消费。

 

2. 系统架构
AMQP协议模型由三部分组成:生产者、消费者和服务端。生产者是投递消息的一方,首先连接到Server,
建立一个连接,开启一个信道;然后生产者声明交换器和队列,设置相关属性,并通过路由键将交换器和队
列进行绑定。同理,消费者也需要进行建立连接,开启信道等操作,便于接收消息。接着生产者就可以发送
消息,发送到服务端中的虚拟主机,虚拟主机中的交换器根据路由键选择路由规则,然后发送到不同的消息
队列中,这样订阅了消息队列的消费者就可以获取到消息,进行消费。