2021SC@SDUSC
今天顿悟组件结构!
每个组件(也是一个service)的文件夹中,单出来的几个文件,都包括api.py, manager.py, rpcapi.py三个重要文件。 以conductor为例,api.py和rpcapi.py虽然在conductor文件夹中,但它并不在这个组件的”核心组织“中。打个比方,一个北京的互联网公司A给济南的B企业做了一款产品,往往会派一个小团队常驻B企业,以便及时获取产品使用反馈。当甲方爸爸(B企业)提出新需求时,这个小团队会将这些信息通过E-mail发给北京的A公司的项目经理,项目经理再组织产品部门、前端、后端开会商定开发方案,并进行开发,将迭代后的产品再通过邮件(或远程部署,类比无返回值但改变全局变量的操作)发给外派团队,外派团队将新产品交给B公司。这里面,外派团队虽然属于A公司的编制,但更像是为B企业服务的,听命于B企业的指示。conductor组件中,api.py和rpcapi.py就是conductor外派到其它各组件的差使。再细致划分一下,api.py是外派团队中直接与B企业交涉的人员,而rpcapi.py负责编写、收发邮件。 api.py收到新的指示,会传达给rpcapi.py,rpcapi.py自己理解理解,将需求填入规定表格,并用邮件发给A公司。收件流程正好相反。在A公司中,manager.py充当项目经理。 我们看到rpcapi.py中的远程函数就是在manager.py中具体实现的。 在compute等组件中,单出来的文件不止这三个,其它文件往往充当他们三个的工具。
|