码迷,mamicode.com
首页 > 其他好文 > 详细

RabbitMQ基本概念

时间:2017-02-26 21:23:13      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:rabbitmq

RabbitMQ是一种基于AMQP(Advanced Message Queuing Protocol)的消息总线开源实现,下面讲述一下其基本概念:


消息通信包括生产者、消费者、代理。生产者创建消息,并发布到代理服务器(RabbitMQ),消费者连接到代理服务器上并绑定订阅队列,接收代理服务器发来的消息。

信道:建立在“真实”TCP连接内的虚拟连接,在一条TCP连接上创建多少条信道没有限制,并且信道之间互不干扰,不仅确保私密性,并且有效节省了创建、销毁TCP连接的系统开销。

队列:是消息通信的基础模块,为消息提供处所,消息在此等待消费,是Rabbit中消息的最后终点。

路由键(routing key):想把消息投递到队列,通过把消息发送给交换器完成。根据确定的规则,RabbitMQ将会决定消息该投递到哪个队列,这些规则被称作路由键。

交换器和绑定:可以理解成具有路由表的路由程序。队列通过路由键绑定到交换器,消息发送到代理服务器时,消息将拥有路由键-可以为空-RabbitMQ会将其和队列进行路由键匹配,相匹配则投递到该队列。

vhost:虚拟消息服务器,称之为虚拟主机。vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的队列、交换器和绑定,最重要的是拥有自己的权限机制。


交换器共有四种类型:

direct:路由键匹配,消息就被投递到对应队列。服务器会实现一个包含空白名称的direct默认交换器。当声明队列时,会自动绑定到默认交换器,并以队列名称作为路由键。

fanout:将收到的消息广播到绑定的队列上。

topic:使来自不同源头的消息能够到达同一个队列。单个“.”把路由键分为了几部分,“*”匹配特定位置的任意文本,“#”匹配所有规则。

headers:不实用,实际应用很少。



RabbitMQ基本概念

标签:rabbitmq

原文地址:http://likerock.blog.51cto.com/2580484/1901379

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!