Две важные задачи для любой распределенной среды - выбор лидера и автоматическая отказоустойчивость.
Распределенная система может создаваться по разным причинам:
- балансировка нагрузки
- горячее резервирование (hot standby)
- у каждого узла может быть своя задача
Некоторые вопросы, которые возникают в такой архитектуре:
- Как выбирать лидера?
- Что делать, если лидер упал? (автоматич отказоустойчивость)
- Что будет, если лидер отключится от других сервисов?
- Что случится, если он переподключится?
- Что делать, если лидер не отвечает?
Если коротко, Zookeper предлагает концепцию узлов. Каждому физическому узлу соотвествует узел зукипера со своим уникальным идентификатором. Как только физич узел системы отключается (или падает) - соответствующий ему узел зукипера исчезает. Таким образом, выбрать лидера очень просто - берется физич узел, которому соответствует узел зукипера с минимальным идентификатором.
Во время прочтения статьи, задался вопросом- а чем же собственно сложна проблема именования? В лекции Мохаммада Хаммуда об этом говорится довольно подробно. Плоское именование, структурированное, основанное на атрибутах и всё такое прочее..
Комментариев нет:
Отправить комментарий