RabbitMQ学习(十一):AMQP 0-9-1协议之Connections and Channels

说明

通过前面几篇博文,翻译学习了有关AMQP协议的相关内容,对AMQP的几个实体概念有了初步认识,本篇博文将继续翻译RabbitMQ有关AMQP协议介绍的最后一部分内容,这部分内容介绍了AMQP服务器和客户端连接的基本知识。通过本篇博文,将会了解到AMQP的操作连接是基于共享TCP连接上创建的轻量级连接------通道(channel)。

正文

Connections

AMQP 0-9-1协议的连接是典型的长连接,该协议是一个应用层面的协议,使用TCP进行可靠传输。连接需要权限验证并且可以使用TLS进行安全保护。当应用程序不需要连接到服务器时,它应该优雅的关闭AMQP协议的连接,而不是粗暴的直接关闭底层的TCP连接。


Channels

一些应用程序需要多个连接到服务器。然而,同时打开保持多个TCP连接是让人难以接受的,那样不但消耗系统资源而且使得防火墙的配置变得十分困难。AMQP使用通道来实现多路传输,通道可以被认为是共享一个TCP连接的轻量级连接。

客户端进行的每个协议操作都发生在一个通道上,一个特定的通道上的通信与其他通道上的通信完全隔离,因此每个协议方法都携带一个通道ID(通道编号),它是一个整数,被服务器和客户端用来区分方法该用于哪个通道。

一个通道仅存在于一个连接的上下文中,不能独立存在。当一个连接被关闭时,它所属的所有通道都会被关闭。

对那些使用多线程/进程的应用程序来说,每个线程/进程都打开一个新的通道,通道在它们之间不共享是十分常见的。


Virtual Hosts

为了实现在单个服务器上有多个隔离的环境(包括用户组,交换机,队列等),AMQP包含了虚拟主机的概念。它和其他很多受欢迎的web服务器使用的虚拟主机类似,提供了AMQP实体的完全隔离的环境。在与AMQP连接协商期间,客户端必须指定它希望使用的虚拟主机。


至此,RabbitMQ有关AMQP协议介绍的文档 AMQP 0-9-1 Model Explained就翻译学习结束了。其中,由于水平原因或存在翻译不合理或错误的地方,还请发现的读者能及时指出,感激不尽。在接下来学习中,将结合实际继续翻译学习RabbitMQ的官方文档,这里的翻译仅仅作为个人的学习记录,若希望完整准确地学习相关内容,强烈建议直接阅读官方文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值