#hazelcast
#hazelcast
Вопрос:
Я использую Hazelcast 3.12.5, я хочу знать, можем ли мы запустить кластер hazelcast на четном количестве узлов или требуется / предпочтительно нечетное число. Есть ли какая-либо проблема с разделением мозга или что-то подобное, что обязательно произойдет / шансы на разделение мозга увеличиваются, если я запускаю нечетное количество узлов.
Это, вероятно, базово, но я хотел быть уверенным — хотел узнать о реальном опыте сообщества. Мне не нравится нести расходы на увеличение с трех до пяти узлов, когда для выполнения задания должно быть достаточно четырех узлов, но в то же время не работать с четырьмя узлами, если у нас будут какие-либо недостатки с кластером четного размера.
Ответ №1:
В программном обеспечении, в котором есть кластеры с выборами лидеров, вы всегда должны стремиться иметь нечетное количество узлов (а не 1), чтобы иметь бесспорные выборы лидера.
Следовательно, минимальное количество узлов должно быть 3.
Комментарии:
1. Мой вопрос не в минимальном количестве узлов. Я спрашиваю, есть ли у меня кластер из 3 узлов, который необходимо масштабировать, должен ли я сделать его только 5 узлами или 4 узла тоже в порядке?
2. В ответе четко указано: «Вы всегда должны стремиться иметь нечетное количество узлов (а не 1)»
3. Почему нечетное число приводит к избранию бесспорного лидера? Если у меня три узла, голоса могут быть разделены 1-1-1, и нет бесспорного лидера.
Ответ №2:
Hazelcast по умолчанию является точкой доступа в отношении теоремы CAP. Учитывая это, в случае разделения мозга выборы лидера не происходят, и вы будете получать информацию только из раздела, к которому вы обращаетесь. Это неверно, если в вашей системе используется новая подсистема CP, которая была введена в 3.12, которая использует алгоритм Raft для выбора ведущего узла и обеспечения согласованности.
Подводя итог, я думаю, что если вы используете подсистему CP, рекомендуется иметь нечетное количество узлов, если вы этого не сделаете, используемое вами число не имеет значения.