1

我想看看是什么让 Chronos 比 Crons 更好?我无法完全理解它的作业调度和执行架构。

具体来说,这些是我不清楚的有关 chronos 架构的问题。

  1. 在一份 Chronos 文档中,我读到由于 crons 具有 SPoF,因此 crons 不好,而 cronos 更好。chronos 如何避免 SPoF?
  2. Chronos 中的作业计划保存在哪里?它是否为此维护某种数据库?
  3. 如何触发计划的作业,谁向 Chronos 发送事件来触发作业?
  4. chronos 是否触发了依赖作业,如果是,chronos 甚至如何知道父作业何时完成?它可以区分失败的工作和完成的工作吗?
  5. 我看到 chronos 中的作业是使用 Json 格式定义的,任何使用 JSON 的原因,而不是任何其他格式,如 YAML、Apache Config 等。
  6. chronos 中的作业可以有多个命令吗?如果是,所有这些不同的命令会在集群中的同一台机器上执行,还是 Chronos 甚至可以在集群中不同机器的作业中启动不同的命令?可以并行启动作业中的这些多个命令吗?
  7. 如果 mesos 已经具备调度能力,那么为什么还需要 Chronos?Chronos 可以在没有 Mesos 的情况下运行吗?
  8. Chronos 是否支持基于事件的调度?例如,在创建文件“x”等时运行我的工作。
  9. 作业的异步运行在 Chronos 中意味着什么?

任何人都对理解 Chronos 的架构有很好的参考?

4

1 回答 1

3

您的一些问题已在我的回复中得到解答,因此我将重点关注其他未解决的问题。

  1. 除非您使用 Zookeeper,否则 Chronos 将状态存储在内存中,在这种情况下,/chronos/state默认情况下它存储在 Zookeeper 中,参考此处。

  2. 请参阅:Chronos:它是如何工作的?

  3. 基于lastsuccesslastfailure 在这里看到

  4. 因为作者决定使用 JSON 和 RESTful API

  5. 是的。使用 && 或 bash 脚本...它们都将在运行作业的同一台机器上执行。不,单个作业不能并行运行命令,但可以同时安排多个作业。

  6. Because Chronos is for short-lived cron jobs that can be scheduled on a regular basis, whereas Marathon is for long-lived tasks. The reason Chronos is a good replacement for cron is that it is wholly dependent on Mesos - which means you can also use Mesos attributes to schedule jobs around your Mesos cluster appropriately. See here and here

  7. Nope.

  8. The state of async jobs is suspect, it looks like it was removed but still unfortunately has some references in the documentation.

于 2018-07-31T19:28:13.763 回答