Объяснение архитектуры Apache Chronos

Я пытался понять, что делает Chronos лучше, чем Crons? Я не в состоянии понять его планирование работы и выполнение архитектуры полностью.

В частности, это вопросы, связанные с архитектурой хронос, которые мне не ясны.

  1. В одной из документации Chronos я читал, что, поскольку у crons есть SPoF, cron - это плохо, а cronos - лучше. Как хронос избегает SPoF?
  2. Где хранятся графики работы в Chronos? Поддерживает ли он какую-то БД для этого?
  3. Как запускаются запланированные задания, кто отправляет событие в Chronos для запуска задания?
  4. Являются ли зависимые задания инициированными хроносом, если да, как хронос знает, когда родительское задание завершено? Может ли он отличить неудавшиеся работы от выполненных?
  5. Я видел, что задания в хронографическом режиме определяются с использованием формата Json, любой причины для использования JSON, а не любого другого формата, такого как YAML, Apache Config и т. Д.
  6. Может ли работа в хроносе иметь несколько команд? Если да, будут ли все эти разные команды выполняться на одной машине в кластере, или Chronos может даже запускать разные команды в задании на разных машинах в кластере? Могут ли эти несколько команд внутри задания запускаться параллельно?
  7. Если у mesos уже есть возможность планирования, то зачем вообще нужен Chronos? Может ли Chronos работать без Mesos?
  8. Поддерживает ли Chronos планирование на основе событий? Например, запустить мою работу, когда файл "х" создан и т. Д.
  9. Что означает асинхронный запуск задания в Chronos?

У кого-нибудь есть хороший справочник для понимания архитектуры Chronos?

1 ответ

Решение

На некоторые ваши вопросы я отвечу в моем ответе здесь, поэтому я сосредоточусь на других вопросах, которые не были рассмотрены.

  1. Chronos хранит состояние в памяти, если вы не используете Zookeeper, в этом случае он сохраняется в Zookeeper по адресу /chronos/state по умолчанию ссылка здесь.

  2. Смотрите: Хронос: Как это работает?

  3. На основе lastsuccess а также lastfailure видел здесь

  4. Потому что авторы решили использовать JSON и RESTful API

  5. Да. Использование сценариев && или bash... Все они будут выполняться на том же компьютере, на котором выполняется задание. Нет, отдельные задания не могут выполнять команды параллельно, но несколько заданий могут быть запланированы одновременно.

  6. Потому что Chronos предназначен для кратковременных заданий cron, которые можно запланировать на регулярной основе, а Marathon - для долгоживущих задач. Причина, по которой Chronos является хорошей заменой cron, заключается в том, что он полностью зависит от Mesos - это означает, что вы также можете использовать атрибуты Mesos для правильного планирования заданий вокруг кластера Mesos. Смотрите здесь и здесь

  7. Нету.

  8. Состояние асинхронных заданий подозрительно, похоже, что оно было удалено, но, к сожалению, в документации есть некоторые ссылки.

Другие вопросы по тегам