2016-12-28 13 views
0

Я потратил немного времени, чтобы изучить Консул. Я читал о Протоколе Консенсуса. Я видел, что если кластер Consul хочет быть доступным, ему нужен кворум узла серверов для выбора лидера. Интересно, что, когда кластер consul имеет меньше кворума узлов, почему он не использует оставшиеся запущенные узлы? Может ли кто-нибудь ответить за меня? Большое вам спасибоConsul.IO - Почему клану Consul требуется хотя бы кворум серверных узлов, чтобы быть активным

ответ

3

Кворум необходим для того, чтобы у вас никогда не было непоследовательных результатов. В противном случае кластер из восьми узлов (A B C D E F G H) может иметь сетевые сбои и разбиваться на два кластера (A B C D) (E F G H). Эти два кластера затем принимают два отдельных решения, которые несовместимы (скажем, обновите одно и то же свойство некоторой конфигурации). Когда раздел исцелен, невозможно слить два изменения.

Если требуется кворум, то вы знаете, что любой кворум имеет по крайней мере одну копию каждого принятого решения; таким образом, любые конфликты будут замечены хотя бы одним узлом и запрещены.

+0

У меня есть идея, но одна вещь, которую я все еще путаю, - это высокая доступность кластера consul. Для чего нужен, по крайней мере, ряд кворумов, чтобы позволить выбрать нового лидера? –

+2

Кворумы используются, чтобы гарантировать, что только одна сторона раздела может принять решение (другими словами, выбрать лидера). Если бы кластер позволил принять менее одного кворума узлов, тогда было бы возможно, чтобы две стороны приняли решение. Например, если три узла кластера из восьми узлов разрешат решать, кто является лидером, было бы возможно, что трое изберут одного лидера, а три других - другого. Требование кворума принять решение о том, кто лидер гарантирует, что только одна сторона могла бы принять такое решение, поскольку только одна сторона может иметь большинство. – kuujo

+0

хороший ответ, большое спасибо: D –