Работающий кластер Storm должен иметь один венчик и одного или нескольких супервизоров. Другим важным узлом является Apache ZooKeeper, который будет использоваться для координации между нимбом и супервизорами.
Давайте теперь внимательно посмотрим на рабочий процесс Apache Storm —
-
Первоначально нимб будет ждать, когда ему будет представлена «Топология шторма».
-
После отправки топологии она обработает топологию и соберет все задачи, которые необходимо выполнить, и порядок, в котором задача должна быть выполнена.
-
Затем нимб будет равномерно распределять задачи по всем доступным руководителям.
-
В определенный промежуток времени все супервизоры отправят сердцебиение в нимб, чтобы сообщить, что они все еще живы.
-
Когда супервизор умирает и не посылает сердцебиение нимбу, тогда он назначает задачи другому супервизору.
-
Когда сам нимб умирает, супервайзеры будут работать над уже назначенной задачей без каких-либо проблем.
-
Как только все задачи будут выполнены, супервизор будет ждать поступления новой задачи.
-
В то же время, мертвый нимб будет автоматически перезапущен инструментами мониторинга сервиса.
-
Перезапущенный нимб продолжится с того места, где он остановился. Аналогично, мертвый супервизор также может быть перезапущен автоматически. Поскольку и венчик, и супервизор могут быть перезапущены автоматически, и оба будут продолжать работу, как и раньше, Storm гарантированно выполнит все задачи хотя бы один раз.
-
Как только все топологии обработаны, венчик ожидает поступления новой топологии, и аналогичным образом супервизор ожидает новых задач.
Первоначально нимб будет ждать, когда ему будет представлена «Топология шторма».
После отправки топологии она обработает топологию и соберет все задачи, которые необходимо выполнить, и порядок, в котором задача должна быть выполнена.
Затем нимб будет равномерно распределять задачи по всем доступным руководителям.
В определенный промежуток времени все супервизоры отправят сердцебиение в нимб, чтобы сообщить, что они все еще живы.
Когда супервизор умирает и не посылает сердцебиение нимбу, тогда он назначает задачи другому супервизору.
Когда сам нимб умирает, супервайзеры будут работать над уже назначенной задачей без каких-либо проблем.
Как только все задачи будут выполнены, супервизор будет ждать поступления новой задачи.
В то же время, мертвый нимб будет автоматически перезапущен инструментами мониторинга сервиса.
Перезапущенный нимб продолжится с того места, где он остановился. Аналогично, мертвый супервизор также может быть перезапущен автоматически. Поскольку и венчик, и супервизор могут быть перезапущены автоматически, и оба будут продолжать работу, как и раньше, Storm гарантированно выполнит все задачи хотя бы один раз.
Как только все топологии обработаны, венчик ожидает поступления новой топологии, и аналогичным образом супервизор ожидает новых задач.
По умолчанию в кластере Storm есть два режима:
Локальный режим — этот режим используется для разработки, тестирования и отладки, потому что это самый простой способ увидеть, как все компоненты топологии работают вместе. В этом режиме мы можем настроить параметры, которые позволяют нам видеть, как наша топология работает в различных средах конфигурации Storm. В локальном режиме штормовые топологии выполняются на локальной машине в одной виртуальной машине Java.
Рабочий режим. В этом режиме мы передаем нашу топологию в работающий штормовой кластер, который состоит из множества процессов, обычно выполняемых на разных машинах. Как обсуждалось в рабочем процессе шторма, работающий кластер будет работать бесконечно, пока не будет остановлен.