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

RabbitMQ

时间:2015-05-22 15:05:55      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

最近开始用RabbitMQ。

历史

RabbitMQ并不是唯一的开源消息中间件,先看一下MOM的历史。

如图所示:

技术分享

为什么我们要选择RabbitMQ呢?

  • RabbitMQ 实现了AMQP 开源标准。
  • 集群相当的简单,因为Erlang的语言特性。
  • 相比于竞争对手,更稳定,更不容易崩溃。

Channel

 

生产者创建消息,消费者接收消息。你的应用程序需要发送消息给另外的应用程序,那就是生产者,反之接收消息的就是消费者。无论是发送消息,还是接受消息,都必须先设置好通道(Channel)。

 

无论是发送还是接受消息,你必须先连接到Rabbit。这里,我们采用的是TCP连接你的应用程序和消息代理。一旦TCP连接打开(你的身份认证通过以后),就会创建通道。通道是建立在TCP连接上的一个虚拟连接。每一个通道都有一个惟一的ID区别。无论你是发送消息,订阅消息,都是通过这个通道。这里为什么要用通道,而不是直接通过TCP连接发送AMQP命令呢?主要原因就是操作系统获得和维持TCP连接是一个比较昂贵的操作。试想你每一个线程中都需要发送AMQP命令,每个线程都保持一个TCP连接,这将会需要成百上千个TCP连接。这不仅仅是浪费了操作系统大量的TCP连接数,而且还耗时,你将很快就遇到性能瓶颈。这个时候就需要通道的概念,你可以使用各自不同的连接通道,但是使用同样的TCP连接。你可以成千上万次的创建通道而不需要担心TCP连接的问题。

 

如图所示:

技术分享

参考

Rabbit in Action

RabbitMQ

标签:

原文地址:http://www.cnblogs.com/bnbqian/p/4522278.html

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