相关流程

添加虚拟集群流程:

客户端填好VCInfo结构体(包括集群中单个虚拟机VMInfo)之后,调用MasterService::AddVC,该函数会构建VC的结构体中,插入VC池子中,并调用的Init函数,该函数初始化一个Task,插入Task池和Taskbuffer中等待调度。

Task在Worker中创建一个虚拟机,并执行Task的过程:

Master调用WorkerService的StartTask函数,该函数创建一个Executor结构,插入池中,等待线程

Worker执行一个Task的流程:

根据Task结构创建Executor结构,状态为EXECUTOR_WAIT,然后插入到ExecutorPool,等待线程SchedulerProcessor调度,这个线程会隔一段时间调用Executor中的状态为EXECUTOR_WAIT的Start函数,这样就会启动一个处于等待状态的Executor。这个Start函数会改变Executor的状态为EXECUTOR_WAIT,根据这个任务的执行情况,改变Executor的状态,并调用相应的VM改变状态的函数,这些状态函数会初始化一个Event,加入到EventBuffer中,另外一个进程StateEventProcessor会调度这些事件并将消息上报给Master。

原文地址:https://www.cnblogs.com/zhangzhang/p/2923411.html