RabbitMQ概念与模型

2018-06-24  本文已影响0人  nick四叶草

什么是RabbitMQ

​ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。

​ RabbitMQ是MQ的一种。其是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

1、MQ应用场景

2、生产消费消息模型

生产者

​ 消息发送者,在MQ中被称为生产者(producer),一个发送消息的应用也被叫做生产者,用P表示

消费者

​ 生产者“生产”出消息后,最终由谁消费呢?等待接受消息的应用程序,我们称之为消费者(Consuming ),用C表示

消息模型

​ 消费者(consumer)订阅某个队列。生产者(producer)创建消息,然后发布到队列(queue)中,最后将消息发送到监听的消费者。

3、RabbitMQ 基本概念

图片描述

生产者发送消息到broker server(RabbitMQ)。在Broker内部,用户创建Exchange/Queue,通过Binding规则将两者联系在一起。Exchange分发消息,根据类型/binding的不同分发策略有区别。消息最后来到Queue中,等待消费者取走。

4、Exchange Type

RabbitMQ常用的Exchange Type有三种:fanout、direct、topic。

5、RPC

MQ本身是基于异步的消息处理,前面的示例中所有的生产者(P)将消息发送到RabbitMQ后不会知道消费者(C)处理成功或者失败(甚至连有没有消费者来处理这条消息都不知道)。 但实际的应用场景中,我们很可能需要一些同步处理,需要同步等待服务端将我的消息处理完成后再进行下一步处理。这相当于RPC(Remote Procedure Call,远程过程调用)。在RabbitMQ中也支持RPC。

RabbitMQ中实现RPC的机制是:

参考资料

  1. MQ的使用场景
  2. RabbitMQ与AMQP协议详解
上一篇下一篇

猜你喜欢

热点阅读