Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Что такое Elasticsearch?

Масштабируемость и отказоустойчивость: кластеры, узлы и фрагменты

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

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

Существуют два типа фрагментов: первичные и реплики. Каждый документ в индексе принадлежит одному первичному фрагменту. Фрагмент-реплика — это копия первичного фрагмента. Реплики обеспечивают дублирующие копии ваших данных для защиты от аппаратных сбоев и увеличения емкости для обработки запросов на чтение, таких как поиск или извлечение документа.

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

Это зависит…​

Существует ряд соображений по производительности и компромиссов, связанных с размером фрагментов и количеством первичных фрагментов, настроенных для индекса. Чем больше фрагментов, тем больше накладных расходов на простое управление этими индексами. Чем больше размер фрагмента, тем дольше занимает перемещение фрагментов при необходимости балансировки кластера Elasticsearch.

Обработка большого количества мелких фрагментов ускоряет обработку на уровне каждого фрагмента, но больше запросов означает больше накладных расходов, поэтому обработка меньшего числа более крупных фрагментов может быть быстрее. Короче говоря…​это зависит.

В качестве отправной точки:

  • Старайтесь поддерживать средний размер фрагмента в диапазоне от нескольких гигабайт до нескольких десятков гигабайт. Для случаев использования данных по времени часто встречаются фрагменты размером от 20 до 40 гигабайт.
  • Избегайте проблемы с миллионами фрагментов. Количество фрагментов, которое может содержать узел, пропорционально доступному объему памяти. Как общее правило, количество фрагментов на гигабайт памяти должно быть меньше 20.

Лучший способ определить оптимальную конфигурацию для вашего случая использования — это экспериментирование с собственными данными и запросами.

В случае катастрофы

Узлы кластера должны иметь надежное и стабильное соединение друг с другом. Для обеспечения лучшего соединения узлы обычно размещаются в одном дата-центре или в близлежащих дата-центрах. Однако для поддержания высокой доступности необходимо также избежать единой точки отказа. В случае крупных сбоев в одном месте серверы в другом месте должны иметь возможность взять на себя управление. Ответ? Репликация между кластерами (CCR).

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

Репликация между кластерами имеет активно-пассивный режим. Индекс в основном кластере является активным лидирующим индексом и обрабатывает все запросы записи. Индексы, реплицированные во вторичные кластеры, являются только для чтения.

Уход и содержание

Как и в любой корпоративной системе, вам нужны инструменты для защиты, управления и мониторинга ваших кластеров Elasticsearch. Интегрированные функции безопасности, мониторинга и администрирования Elasticsearch позволяют использовать Kibana в качестве центра управления кластером. Функции, такие как сводки данных и управление жизненным циклом индексов, помогают вам разумно управлять данными со временем.

© 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/scalability.html

Spec-Zone.ru

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