Мне абсолютно нужно минимум 3 узла/серверы для кластера Cassandra или 2 будет достаточно?
-
22-09-2019 - |
Вопрос
Конечно, можно запустить один кластер узлов, но я бы хотел какой-то уровень неисправности.
В настоящее время я могу позволить себе арендовать два сервера (8 ГБ оперативной памяти, частная VLAN @1Gige), но не 3.
Насколько я понимаю, 3 узла - это минимум, необходимый для кластера Cassandra, потому что для разрешения конфликтов версий не существует никакого большинства, и для разрешения конфликтов об управлении версиями требуется большинство. Ой, подождите, я думаю о «векторных часах» и Риаке? Ак! Кассандра использует временные метки для разрешения конфликтов.
Для 2 узлов какова рекомендуемая стратегия чтения/записи? Должен ли я писать во всех (оба) узлах и читать из одного (n = 2; w = n/2+1; w = 2/2+1 = 2)? Кассандра будет использовать намек, как обычно, даже для 2 узлов, да?
Эти 2 сервера расположены в том же центре обработки данных FWIW.
Спасибо!
Решение
Если вам нужна доступность на rf = 2, Clustersize = 2, то вы не можете использовать все, или вы не сможете писать, когда узел снизится.
Вот почему люди рекомендуют 3 узла вместо 2, потому что тогда вы можете делать чтения кворума+и при этом иметь как сильную последовательность, так и доступность, если один узел снизится.
С всего лишь 2 узлов вы выбираете, хотите ли вы сильную последовательность (напишите со всеми) или доступность перед лицом сбоя одного узла (напишите с одним), но не оба. Конечно, если вы пишете с одним Кассандрой, намекнув на передачу и т. Д. По мере необходимости, чтобы сделать его в конечном итоге последовательным.