Как 4 сервера должны согласовывать / пересматривать один первичный сервер при запуске и сбое? - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть веб-сервис на основе Node, который сбалансирован по нагрузке на 4 сервера. Я хочу, чтобы они договорились о лидере между собой при запуске или неудаче, но я не совсем уверен, как справиться с состоянием гонки, вызванным «одновременным» запуском и задержкой.

Я начал думать по линии TCP-рукопожатия, но я не могу обернуть голову вокруг лучшего способа увеличить это от 2 до 4 сторон, или как замкнуть его каждый раз, когда пара выбирает между ними (потому что кто скажет, что не будет оказаться в бесконечном цикле одностороннего совершенства?).

Использование такого конфигурационного файла просто слишком пешеходно для моей крови

servers: {
    list: [a,b,c,d],
    speaker: a
}

, потому что это потребует ручного вмешательства через 4 поля для обновления speaker, если host1 не удалось.

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

...