赞
踩
提示:本文基于openstack liberty版本源码进行梳理
之前我们在源码准备工作中找到了程序入口。下面我们就四个模块的启动流程进行分析。启动流程大致相同。本文介绍cinder四个模块之中的三个:backup、scheduler、volume。这三个模块都是Service,cinder-api则是WSGIService,所以本文将这三个放在一起。
基本所有的openstack服务都依赖 evenlet 完成各种并发任务,它的进程可分为两类:
- WSGIService: 接收和处理 http 请求,依赖eventlet.wsgi的 wsgi server,处理 http 请求,比如cinder-api
- Service: 接收和处理 rpc 请求,如cinder-volume等
无论是 WSGIService还是 Service类型的进程,每当接收到一个请求(http 或 rpc),都会在线程池中分配一个协程处理该请求
没区别!!!
backup和scheduler的启动流程不能说是毫无相关,简直就是一模一样,上对比:
除了创建Service的binary参数不一样,其他不同就是改了个注释,换了个代码顺序。
惊不惊喜,意不意外
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。