赞
踩
MQ:全称为message queue,即消息队列。它是由erlang语言开发,基于AMQP(Advanced Message Queue Protocol 高级消息队列协议)协议实现的队列。
RabbitMQ的基本结构
组成部分说明:
信息发送接收流程:
发送消息:
接收信息:
RabbitMQ有6中工作模式,分别为:work queue、Publish/Subscribe、Routing、Topic、Hreader、RPC
work queue是一个较为基础的工作模式,其工作模式是多个消费者共同消费同一个队列中的信息。
启动多个消费者,当生产者将消息发送给队列时,一条信息只会被一个消费者接收,rabbit采用轮询的方式将消息平均发送给消费者,消费者在处理完某个信息后才会接收到下一条信息。
Publish/Subscribe模式是work queue的升级版,生产者通过交换机将信息转发给绑定到交换机的相应队列,每个绑定到交换机的队列都将收到信息;消费者会监听自己的队列,然后队列会将信息发送给监听它的消费者。
Publish/Subscribe模式下exchange的类型是fanout
Routing模式下exchange的类型是direct,相较Publish/Subscribe模式该模式多了routingkey,即如上图所示,当routingkey设置为error时上下两个队列都会接收到来自交换机转发的信息;routingkey为info时,只有下面的队列能收到交换机转发来的信息。
Topic模式下交换机类型为topic,该模式和Routing模式一样,只不过是这个模式下的routingkey可以用通配符
统配符规则:
中间以“.”分隔。
符号#可以匹配多个词,符号*可以匹配一个词语。
header模式与routing不同的地方在于,header模式取消routingkey,使用header中的 key/value(键值对)匹配 队列
RPC即客户端远程调用服务端的方法 ,使用MQ可以实现RPC的异步调用,基于Direct交换机实现,流程如下:
本文只是简单的介绍下RabbitMQ和其工作模式,如果大家想知道更详细的请看官网介绍。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。