Я пытаюсь реализовать кластер, используя Erlang как клей, который держит его все вместе. Мне нравится идея, что он создает полностью связанный граф узлов, но, читая разные статьи в Интернете, кажется, что это не очень хорошо масштабируется (имеет максимум 50-100 узлов). Разве разработчики OTP навязывают это ограничение целенаправленно? Я знаю, что вы можете настроить узлы на наличие явных соединений, а также скрытые узлы и т.д. Но похоже, что настройка по умолчанию по умолчанию не очень масштабируема.
Итак, на вопросы:
-
Если у вас было 5 узлов (A, B, C, D, E), у всех были явные соединения, такие, что A-B-C-D-E. Разрешает ли Erlang/OTP A говорить напрямую с E или должен передавать сообщения от B до D, чтобы добраться до E, и, следовательно, причина для полностью связанного графика? Опять же, это имеет смысл, но оно плохо масштабируется из того, что я видел.
-
Если вы хотите попробовать масштабируемую и отказоустойчивую систему, каковы ваши варианты? Кажется, если вы не можете создать полностью связанный граф, потому что у вас слишком много узлов, лучше всего будет создать дерево какого-то типа. Но это не кажется очень отказоустойчивым, потому что если корень или любой родительский элемент дочерних узлов умирает, вы потеряете значительную часть своего кластера.
-
При взгляде на супервизоров и работников все примеры, которые я видел, применяют к процессам на одном node. Может ли он применяться к кластеру узлов, чтобы помочь реализовать отказоустойчивость?
-
Могут ли узлы быть частью нескольких кластеров?
Спасибо за вашу помощь, если есть полу-недавний веб-сайт или блог-почтовый адрес (примерно 1 год), который я пропустил, я был бы рад посмотреть на них. Но, я пробовал интернет довольно хорошо.