标签:
最近开始用RabbitMQ。
历史
RabbitMQ并不是唯一的开源消息中间件,先看一下MOM的历史。
如图所示:
为什么我们要选择RabbitMQ呢?
Channel
生产者创建消息,消费者接收消息。你的应用程序需要发送消息给另外的应用程序,那就是生产者,反之接收消息的就是消费者。无论是发送消息,还是接受消息,都必须先设置好通道(Channel)。
无论是发送还是接受消息,你必须先连接到Rabbit。这里,我们采用的是TCP连接你的应用程序和消息代理。一旦TCP连接打开(你的身份认证通过以后),就会创建通道。通道是建立在TCP连接上的一个虚拟连接。每一个通道都有一个惟一的ID区别。无论你是发送消息,订阅消息,都是通过这个通道。这里为什么要用通道,而不是直接通过TCP连接发送AMQP命令呢?主要原因就是操作系统获得和维持TCP连接是一个比较昂贵的操作。试想你每一个线程中都需要发送AMQP命令,每个线程都保持一个TCP连接,这将会需要成百上千个TCP连接。这不仅仅是浪费了操作系统大量的TCP连接数,而且还耗时,你将很快就遇到性能瓶颈。这个时候就需要通道的概念,你可以使用各自不同的连接通道,但是使用同样的TCP连接。你可以成千上万次的创建通道而不需要担心TCP连接的问题。
如图所示:
参考
Rabbit in Action
标签:
原文地址:http://www.cnblogs.com/bnbqian/p/4522278.html