Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Настройка Elasticsearch ›Обнаружение и формирование кластера

Опубликование состояния кластера

Избранный мастер-узел — единственный узел в кластере, который может вносить изменения в состояние кластера. Избранный мастер-узел обрабатывает одну партию обновлений состояния кластера за раз, вычисляет необходимые изменения и публикует обновлённое состояние кластера на все остальные узлы кластера. Каждая публикация начинается с трансляции избранным мастер-узлом обновлённого состояния кластера всем узлам кластера. Каждый узел отвечает подтверждением, но пока не применяет полученное состояние. После того, как избранный мастер-узел получит подтверждения от достаточного количества узлов, имеющих право быть мастерами, новое состояние кластера считается зафиксированным, и мастер транслирует другое сообщение, предписывающее узлам применить теперь зафиксированное состояние. Каждый узел получает это сообщение, применяет обновлённое состояние и затем отправляет второе подтверждение мастеру.

Избранный мастер предоставляет ограниченное время для полной публикации каждого обновления состояния кластера на все узлы. Оно определяется настройкой cluster.publish.timeout, которая по умолчанию равна 30s, отсчитываемой с момента начала публикации. Если это время истекает до того, как новое состояние кластера будет зафиксировано, то изменение состояния кластера отбрасывается, и избранный мастер-узел считает себя вышедшим из строя. Он отходит от процесса и начинает попытки избрания нового мастер-узла.

Если новое состояние кластера зафиксировано до истечения времени cluster.publish.timeout, избранный мастер-узел считает изменение успешным. Он ждёт, пока истечёт таймаут или пока не получит подтверждения о том, что каждый узел в кластере применил обновлённое состояние, а затем начинает обработку и публикацию следующего обновления состояния кластера. Если некоторые подтверждения не получены (то есть некоторые узлы ещё не подтвердили, что применили текущее обновление), эти узлы считаются отстающими, поскольку их состояния кластера отстают от последнего состояния избранного мастера. Избранный мастер ждёт, пока отстающие узлы догонят, ещё в течение времени cluster.follower_lag.timeout, которое по умолчанию равно 90s. Если узел всё ещё не успешно применил обновление состояния кластера в течение этого времени, он считается вышедшим из строя, и избранный мастер удаляет его из кластера.

Обновления состояния кластера обычно публикуются как изменения (диффы) по отношению к предыдущему состоянию кластера, что сокращает время и сетевую пропускную способность, необходимые для публикации обновления состояния кластера. Например, при обновлении отображений только для подмножества индексов в состоянии кластера, узлам кластера нужно публиковать только обновления для этих индексов, при условии, что эти узлы имеют предыдущее состояние кластера. Если у узла отсутствует предыдущее состояние кластера, например, при присоединении к кластеру, избранный мастер опубликует полное состояние кластера этому узлу, чтобы он мог получать последующие обновления как диффы.

Elasticsearch — это система, основанная на взаимодействии узлов, в которой узлы общаются напрямую. Высокопроизводительные API (индексация, удаление, поиск) обычно не взаимодействуют с избранным мастер-узлом. Ответственность избранного мастер-узла — поддерживать глобальное состояние кластера, что включает перераспределение фрагментов при присоединении или уходе узлов из кластера. Каждый раз, когда состояние кластера изменяется, новое состояние публикуется на все узлы кластера, как описано выше.

Характеристики производительности обновлений состояния кластера зависят от скорости хранения на каждом узле, имеющем право быть мастером, а также от надёжности и задержек сетевых соединений между всеми узлами кластера. Поэтому необходимо убедиться, что хранение и сетевые возможности узлов вашего кластера достаточны для достижения ваших целей по производительности.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-state-publishing.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API