openstack学习之RPC服务实现分析

本文探讨了OpenStack中的RPC服务实现,详细分析了Manager对象作为RPC API入口的角色,阐述了RPC API如何转化为对Manager方法的调用,揭示了RPC API的底层实现细节。
摘要由CSDN通过智能技术生成
openstack中的服务主要有两种:一种是rest服务,提供Rest API;一种RPC服务,提供RPC API。本文讨论RPC服务的实现。Rest服务的实现在《openstack学习之各种API》有所涉及。

RPC服务其实就是一个RPC server,client(客户)可以通过RPC API进行调用。以nova为例,nova中的多数服务(service)都是一个RPC server。比如nova-conductor,nova-compute,nova-consoleauth,nova-scheduler...等

实现一个rpc server需要几个部分:
1)启动命令代码
2)Service定义
3)Manager定义
4)功能实现代码
其中1)2)3)属于框架性代码,每个rpc server的实现都差不多;4)和rpc server要实现的功能相关。

以nova为例,来分析这些部分的实现。
nova.cmd package中定义了所有服务的启动代码,包括rpc server和rest api服务。api.py,api_ec2.py,api_metadata.py,api_os_compute.py是rest api服务。这个目录中还包含了一些命令工具(utility command),如manage.py。读者可自行查看。

rpc server的启动代码基本类似:
1)定义main
2) 加载配置文件
3) 配置log
4) 创建server对象
5)启动service.

步骤4的代码compute:
    server = service.Service.create(binary='nova-compute',
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值