UserServer处理RUN_QUERY_VALUE客户端的查询请求,会将任务分派给UserWorker处理, 由worker提交工作:
显然worker要在构造UserServer的时候也一起构造出来, 这样在收到任务的时候, 确保立即有工人接手这份工作.
UserServer的构造在ServiceEngine,而服务引擎是由DrillBit创建的.
UserWorker是由WorkerManager管理的, 而WorkerManager也是由DrillBit创建的.
所以启动DrillBit服务后,参与计算的角色都已经准备好了.
Role | Explain |
---|---|
WorkerBee | 工蜂, 真正干活的 |
UserWorker | 用户操作的(工人), 通过WorkerBee构成 |
WorkerManager | 工人管理员,负责选择一个工人来工作 |
UserServer | 用户操作的服务端,会将工作交给UserWorker,它需要一个UserWorker |
Foreman | 包工头,监工.由UserWorker创建出来. 因为UserWorker底层是WorkerBee,所以会将WorkerBee和Foreman关联起来 |
ServiceEngine | 服务引擎,管理UserServer,Controller |
DrillBit | Drill的服务端控制进程,管理ServiceEngine,WorkerManager |
BootStrapContext | 启动DrillBit的上下文,包括配置信息,度量注册 |
DrillbitContext | DrillBit工作时候的上下文 |
Controller | 不同DrillBit节点的通信 |
ControllServer | 不同节点间消息传输,连接等的RPC服务端 |
DataServer | 负责数据交互的RPC服务端 |