В чем разница между шлюзом главного узла и другим шлюзом узла в elasticsearch? Оба они хранят метаданные, не так ли?

В чем разница между шлюзом главного узла и другим шлюзом узла в elasticsearch? Оба они хранят метаданные, не так ли? Метаданные, называемые elasticsearch, какую информацию мы можем из них получить?


person Hoony    schedule 22.02.2013    source источник


Ответы (1)


Главный узел такой же, как и любой другой узел в кластере, за исключением того, что он выбран главным.

Он отвечает за координацию любых изменений в масштабе кластера, таких как добавление или удаление узла, создание, удаление или изменение состояния (т. е. открытие/закрытие) индекса, а также выделение осколков узлам. Когда происходят какие-либо из этих изменений, «состояние кластера» обновляется мастером и публикуется для всех остальных узлов в кластере. Это единственный узел, который может публиковать новое состояние кластера.

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

Узлу разрешено стать ведущим, если он помечен как «пригодный для использования в качестве главного» (которым по умолчанию являются все узлы). Если текущий мастер выйдет из строя, новый мастер будет выбран кластером.

Важным параметром конфигурации в вашем кластере является minimum_master_nodes. Это указывает количество «основных подходящих» узлов, которые узел должен иметь возможность видеть, чтобы быть частью кластера. Его цель состоит в том, чтобы избежать «разделения мозга», т. е. разделения кластера на два кластера, каждый из которых считает, что работает правильно.

Например, если у вас есть 3 узла, все из которых являются ведущими, и установите minimum_master_nodes равным 1, то, если третий узел отделен от двух других, он все равно увидит один пригодный для главного узла (сам) и считает, что он может образовывать кластер сам по себе.

Вместо этого установите minimum_master_nodes в 2 в этом случае (количество узлов / 2 + 1), тогда, если третий узел отделится, он не увидит достаточно мастер-узлов и, следовательно, не сформирует кластер сам по себе. Он будет продолжать попытки присоединиться к исходному кластеру.

В то время как Elasticsearch очень старается выбрать правильные значения по умолчанию, minimum_master_nodes невозможно угадать, поскольку у него нет возможности узнать, сколько узлов вы собираетесь запустить. Это то, что вы должны настроить самостоятельно.

person DrTech    schedule 22.02.2013
comment
Отличное объяснение Клинтон! - person javanna; 22.02.2013
comment
Спасибо за ваш замечательный ответ. Метаданные кластера содержат что-то вроде состояния кластера, например тип сопоставления, распределение осколков, верно? метаданные узла содержат что? Содержит ли он некоторую информацию об индексах? - person Hoony; 24.02.2013
comment
Да, это так. Вы можете точно увидеть, что он содержит, выполнив этот запрос для узла в вашем кластере: curl -XGET '127.0.0.1:9200/_cluster/state?pretty=1' - person DrTech; 25.02.2013
comment
Думаю, этот ответ должен быть в документации Elastic, в которой отсутствует некоторая информация, указанная здесь. - person Kamarey; 01.01.2018