教程一

2016-09-07  本文已影响15人  985cf3d148b0

教程开始之前:先阅读以下

关于消息队列的使用

概念介绍:

Broker:简单来说就是消息队列服务器实体。

Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。

Queue:消息队列载体,每个消息都会被投入到一个或多个队列。

Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。

Routing Key:路由关键字,exchange根据这个关键字进行消息投递。

vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。

producer:消息生产者,就是投递消息的程序。

consumer:消息消费者,就是接受消息的程序。

channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

使用流程

AMQP模型中,消息在producer中产生,发送到MQ的exchange上,exchange根据配置的路由方式发到相应的Queue上,Queue又将消息发送给consumer,消息从queue到consumer有push和pull两种方式。 消息队列的使用过程大概如下:

客户端连接到消息队列服务器,打开一个channel。

客户端声明一个exchange,并设置相关属性。

客户端声明一个queue,并设置相关属性。

客户端使用routing key,在exchange和queue之间建立好绑定关系。

客户端投递消息到exchange。

exchange接收到消息后,就根据消息的key和已经设置的binding,进行消息路由,将消息投递到一个或多个队列里。 exchange也有几个类型,完全根据key进行投递的叫做Direct交换机,例如,绑定时设置了routing key为”abc”,那么客户端提交的消息,只有设置了key为”abc”的才会投递到队列。

使用流程

即 Client – AMQP server – Client

左边的Client向右边的Client发送消息,流程:

获取Conection

获取Channel

定义Exchange,Queue

使用一个RoutingKey将Queue Binding到一个Exchange上

通过指定一个Exchange和一个RoutingKey来将消息发送到对应的Queue上,

接收方在接收时也是获取connection,接着获取channel,然后指定一个Queue直接到它关心的Queue上取消息,它对Exchange,RoutingKey及如何binding都不关心,到对应的Queue上去取消息就OK了

上一篇 下一篇

猜你喜欢

热点阅读