RPC机制之AMQP协议
openstack RPC通信 Openstack 的主要组件有 Nova、Cinder、Neutron、Glance 等,分别负责云平台的计算、存储、网络资源管理。OpenStack 各组件之间是通过 REST 接口进行相互通信,而各组件内部则采用了RPC通信。 什么是RPC RPC即Remote Procedure Call(远程方法调用),是Openstack中一种用来实现跨进程(或者跨机器)的通信机制。Openstack中同项目内(如nova, neutron, cinder…)各服务(service)均通过RPC实现彼此间通信。Openstack中还有另外两种跨进程的通信方式: 数据库和Rest API 。 Openstack中服务主要以进程的形式实现。也可以以线程的形式实现,但是Python中的线程是协作模型,无法发挥系统中多CPU(或多CPU核心)的能力。RCP只定义了一个通信接口,其底层的实现可以各不相同。目前Openstack中的主要采用AMQP的实现满足组件内部的松耦合性。 什么是AMQP AMQP即Advanced Message Queuing Protocol()是一种基于队列的可靠消息服务协议,具体可参考 http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol 。作为一种通信协议