python实现大致思路
<code>
master
|-worker
|-worker
</code>
master把要做的任务,分解为python程序片段序列化,丢进任务队列
计算节点,也叫worker启动,持续监听任务队列:
- 从队列中获取task
- 执行,过程中也可能嵌套其他任务,机制相同
- 把task结果丢回队列
所以:
- worker可以不包含任何业务代码
- 如果master 需要随时控制worker(中止任务,查看状态,检查环境等),worker 要向master 提供单独的通讯接口(独立于异步任务队列之外的,如RPC)
- worker执行序列化的python片段,要考虑依赖,实现依赖环境的同步机制
- 需要设计错误恢复,调试信息的机制
- 安全机制,凭证
- 网络层管理
- 考虑指定ID worker 执行task的实现方法
发散:
- 分布式虚拟机执行的可能性?