题目描述:如果让你来重构这个系统实现更灵活的架构,你会让master和worker之间呈现一种什么样的职责关系?为了限制讨论范围,我们要求继续基于etcd存储任务与完成调度,尝试说说你的实现思路吧。
老师提示:从worker抢夺任务改变为master分派任务,worker只负责执行任务,那么master就可以来保证多个worker之间的均衡性了。简单来说,master应该在etcd中主动指派task给某个worker,接下来worker要持续感知task的属主变化,同时worker完成任务后主动在etcd中将任务指回master,另外要注意worker节点如果离线的话,master应该剥夺其任务,重新指派给其他worker。