Кажется, что люди использовали его без разбора, но оба пункта взаимоисключающие. Во-первых, это количество серверов, чтобы создать работоспособный ансамбль, устойчивый и надежный для получения кворума, даже если какой-то узел выходит из строя, а другие утверждают, что кворум эквивалентен этому числу. Кроме того, определение кворума таково:
Минимальное количество членов собрания или общества, которое должно присутствовать на любом из его собраний для того, чтобы процедура этого собрания была действительной.
Это означает, что у нас могло бы быть больше участников, недоступных в то время, когда нам нужно принять решение (в этом случае серверы вышли из строя). Более того, я нашел интересную заметку во внутренней документации Zookeeper:
Атоми c трансляция и выборы лидера используют понятие кворума, чтобы гарантировать согласованное представление о системе. По умолчанию ZooKeeper использует мажоритарных кворумов , что означает, что для каждого голосования, которое происходит по одному из этих протоколов, требуется большинство для голосования. Одним из примеров является подтверждение предложения лидера: лидер может зафиксировать только после того, как он получит подтверждение от кворума серверов.
Кворумы также могут быть настроены иерархическим способом или с весами, настроенными для событий, на разных серверах.
Заключение:
- Число серверов для настройки надежного и отказоустойчивого ансамбля - это показатель работоспособности c, вы можете назвать его как хотите, но это не кворум.
- Кворум - это минимальное количество серверов, которые должны голосовать или отправлять подтверждения при каждом решении в ансамбле, которое по умолчанию равно
(T+1)/2
, где T
обозначает общее количество серверов.