紧跟之前
本节主要介绍一下zeus的架构:
先给一个zeus的架构图
无论Master还是Worker都有一套WEB UI,无论从哪个上面去看,看到的结果都是一样的,实际上一般仅仅看主
Master:调度内核,在启动时启动一个TCP服务,同一时候将全部任务读到内存中,在任务能够运行时,加到运行队列,下发到client
Worker:启动后连接Master,并定时向Master发送心跳,当收到Master的任务后,封装任务运行shell,并将任务运行结果通知给Master
Master单点:在zeus中,整个机器的每一个节点都有可能成为Master,整个集群是通过一把分布式锁来唯一确定Master,Master在获得分布式锁后,会定时更新分布式锁状态,全部的Worker都会检查分布式锁状态,假设发现Master未按时更新锁状态,则各个Worker竞争获得该锁,获得锁后,使自己成为Master。
未能获得锁的Worker会将自己正在运行的任务杀死,然后又一次连接新的Master,Master会将之前正在运行的Job又一次下发给Worker