2019-08-12

今天让我们走进RabbitMQ的世界:

RabbitMQ的背景是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。

MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等。

MQ特点

MQ是消费 - 生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息.MQ和JMS类似,但不同的是JMS是SUN JAVA 中间件消息服务的一个标准API状语从句:定义,而MQ则是遵循了AMQP协议的具体实现和产品。

使用场景

在项目中,将一些无需即时返回且耗时的操作提取出来,了进行异步处理,而异步这种处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

含义

RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。他遵循Mozilla Public License 开源协议。

几个概念

交易所:交换机,决定了消息路由规则; 队列:消息队列; 频道:进行消息读写的通道;  绑定:绑定了队列和兑换,意即为符合什么样路由规则的消息,放置将会入哪一个消息队列 ;

消息持久

1)将交换机置为可持久;

2)将通道置为可持久

3)消息发送时设置可持久。

RabbitMQ的结构图如下:

你可能感兴趣的:(2019-08-12)