Мне абсолютно нужен минимум 3 узлов/серверов для кластера Cassandra, или 2 будет достаточен?

Конечно, можно выполнить единственный кластер узла, но я хотел бы некоторый уровень отказоустойчивости.

В настоящее время я могу позволить себе арендовать два сервера (8 ГБ RAM, частного VLAN @1GigE), но не 3.

Мое понимание - то, что 3 узла являются минимумом, необходимым для кластера Cassandra, потому что нет никакого возможного большинства между 2 узлами, и большинство требуется для разрешения конфликтов управления версиями. О, ожидайте, я думаю "о векторных часах" и Riak? Ack! Cassandra использует метки времени для разрешения конфликтов.

Для 2 узлов, какова рекомендуемая стратегия чтения-записи? Если я обычно пишу в ВЕСЬ (оба) узлы и читаю из ОДНОГО (N=2; W=N/2+1; W=2/2+1=2)? Cassandra будет использовать подсказавшую передачу, как обычно, даже для 2 узлов, да?

Эти 2 сервера расположены в том же дата-центре FWIW.

Спасибо!

14
задан z8000 24 February 2010 в 23:47
поделиться

1 ответ

Если вам нужна доступность в системе RF = 2, clusterize = 2, вы не можете использовать ВСЕ или не сможете писать, когда узел выходит из строя.

Вот почему люди рекомендуют 3 узла вместо 2, потому что тогда вы можете выполнять чтение + запись кворума и при этом сохранять высокую согласованность и доступность, если один узел выходит из строя.

Имея всего 2 узла, вы можете выбрать, хотите ли вы строгую согласованность (запись со ВСЕМИ) или доступность в случае отказа одного узла (запись с ОДНИМ), но не то и другое одновременно. Конечно, если вы пишете с ОДНОЙ, cassandra будет выполнять подсказку и т. Д. По мере необходимости, чтобы сделать это в конечном итоге согласованным.

23
ответ дан 1 December 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: