为什么chronos被称为分布式容错调度器?据我所知,只有一个调度程序示例运行管理作业调度。
根据chronos文档,在内部,chronos调度器主循环非常简单。
模式如下:
chronos从状态存储读取所有作业状态(zookeeper)
作业在调度程序中注册,并加载到作业图中以跟踪依赖关系。
作业被分为应在当前时间运行的作业(基于主机的时钟)和不应在当前时间运行的作业。
要运行的作业列表中的作业已排队,并将在提供足够的服务时立即启动。
chronos将一直休眠,直到计划运行下一个作业,然后从步骤1重新开始。
请Maven们发表意见?
1条答案
按热度按时间bqf10yzr1#
您可以将chronos作为单个节点运行(这就是您所说的),但是chronos被设计为在不同主机上运行多个节点(通过zookeeper quorum实现ha)。这遵循标准的leader/follower方法,其中只有leader是活动的,follower将把通信重定向到leader。这在许多开源框架中都被认为是ha,包括这里看到的mesos。
领导人退位或失败可能会发生,这是zookeeper进来-chronos领导人选举将发生在领导人失败后,假设在此事件之前已经建立并维持了法定人数。
请参见此处和此处的多节点引用。
如何指定领导人选举:jobschedulerelectionspec.scala
引线重定向:redirectfilter.scala