RabbitMQ入门之一 生产者、消费者、虚拟主机、信道、交换机、队列、绑定

生产者产生消息,并发送到RabbitMQ。
消费者订阅队列。

【信道】
当然我们的应用程序可以作为生产者产生消息,或者作为消费者接收消息。也可以在两者间进行切换。不过在此之前,它必须先建立一条信道channel。

必须先连接到RabbitMQ,才能发布或消费消息。应用程序和RabbitMQ之间一旦建立了TCP连接(通过了认证),应用程序就可以创建一条AMQP信道。信道是建立在”真实的”TCP连接内的虚拟连接。AMQP命令都是通过信道发送出去的。每条信道都会被指派一个唯一ID。无论发布消息、订阅队列或接收消息,这些动作都是通过信道完成的。

为什么不直接通过TCP连接发送AMQP命令呢?
原因:OS建立和销毁TCP会话是非常昂贵的开销。假设只进行TCP连接,高峰期每秒就有成百上千条连接。而OS每秒也就只能建立这点数量的连接,这就造成TCP连接的巨大浪费,系统也会很快遇到性能瓶颈。
因此,为所有线程只使用一条TCP连接以满足性能方面的要求,又能确保每个线程的私密性(安全性)。也就引入了信道的概念。

【虚拟主机vhost】
每一个rabbitMQ服务器都能创建虚拟主机vhost。每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的队列,交换机和绑定,更重要的是拥有自己的权限机制。这样就能够安全地使用一个RabbitMQ服务器来服务众多应用程序。

vhost必须在连接时进行指定。RabbitMQ包含了默认的vhost:/。如果不需要多个vhost的话,那就直接使用默认的吧。

【队列】
AMQP消息路由器必须有三部分:交换机、队列和绑定。

猜你喜欢

转载自blog.csdn.net/javandroid/article/details/53072405
今日推荐