В чем разница между шлюзом главного узла и другим шлюзом узла в elasticsearch? Оба они хранят метаданные, не так ли? Метаданные, называемые elasticsearch, какую информацию мы можем из них получить?
В чем разница между шлюзом главного узла и другим шлюзом узла в elasticsearch? Оба они хранят метаданные, не так ли?
Ответы (1)
Главный узел такой же, как и любой другой узел в кластере, за исключением того, что он выбран главным.
Он отвечает за координацию любых изменений в масштабе кластера, таких как добавление или удаление узла, создание, удаление или изменение состояния (т. е. открытие/закрытие) индекса, а также выделение осколков узлам. Когда происходят какие-либо из этих изменений, «состояние кластера» обновляется мастером и публикуется для всех остальных узлов в кластере. Это единственный узел, который может публиковать новое состояние кластера.
Задачи, которые выполняет мастер, легкие. Любые задачи, связанные с данными (например, индексация, поиск и т. д.), не требуют участия мастера. Если вы решите запустить мастер как узел без данных (т. е. узел, который действует как мастер и маршрутизатор, но не содержит никаких данных), то мастер может успешно работать на небольшом устройстве.
Узлу разрешено стать ведущим, если он помечен как «пригодный для использования в качестве главного» (которым по умолчанию являются все узлы). Если текущий мастер выйдет из строя, новый мастер будет выбран кластером.
Важным параметром конфигурации в вашем кластере является minimum_master_nodes
. Это указывает количество «основных подходящих» узлов, которые узел должен иметь возможность видеть, чтобы быть частью кластера. Его цель состоит в том, чтобы избежать «разделения мозга», т. е. разделения кластера на два кластера, каждый из которых считает, что работает правильно.
Например, если у вас есть 3 узла, все из которых являются ведущими, и установите minimum_master_nodes
равным 1, то, если третий узел отделен от двух других, он все равно увидит один пригодный для главного узла (сам) и считает, что он может образовывать кластер сам по себе.
Вместо этого установите minimum_master_nodes
в 2 в этом случае (количество узлов / 2 + 1), тогда, если третий узел отделится, он не увидит достаточно мастер-узлов и, следовательно, не сформирует кластер сам по себе. Он будет продолжать попытки присоединиться к исходному кластеру.
В то время как Elasticsearch очень старается выбрать правильные значения по умолчанию, minimum_master_nodes
невозможно угадать, поскольку у него нет возможности узнать, сколько узлов вы собираетесь запустить. Это то, что вы должны настроить самостоятельно.