Обнаружение сбоя во время выполнения? - PullRequest
4 голосов
/ 11 марта 2012

1) Есть ли способ автоматического определения отказа одного узла с другого узла?

2) Есть ли способ автоматического перезапуска узла, который только что вышел из строя?

Что касается моего второго вопроса, я нашел в Google и не могу найти упоминания о создании узлов изcode / at runtime.

Я понимаю, что вы можете сделать это с процессами - создание процессов во время выполнения тривиально, и если вы хотите знать, когда они завершаются аварийно, вы можете создать их из супервизора и т.д.обнаружение / создание узла.

Это необходимо для клиента, который хочет создать уменьшенную версию Amazon EDS, но я не могу представить, чтобы Amazon вручную перезапускал узлы, если они отключаются!

1 Ответ

3 голосов
/ 11 марта 2012

Вы можете использовать net_kernel:monitor_nodes(true, [{node_type, visible}]) для мониторинга всех видимых узлов внутри вашего приложения erlang. Из справочной страницы :

Вызывающий процесс подписывается или отменяет подписку на изменение статуса узла. Сообщения. Сообщение nodeup доставляется всему процессу подписки когда новый узел подключен, и сообщение nodedown доставляется, когда узел отключен.

Я не вижу прямого метода (изнутри вашего процесса, который получает сообщение nodedown), с помощью которого вы можете запустить узел на удаленной машине. Вам, вероятно, нужно написать небольшой модуль, который сделает это автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...