ElasticSearc Shard Replica использовать в поиске

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

Но в документах также упоминается, что это помогает в распределении нагрузки при большом поисковом трафике и

также есть возможность иметь более одной реплики для каждого шарда в этом случае, как шард реплики выбран для обслуживания поиска?

Это похоже на то, что если у меня есть один основной осколок и 3 реплики на других узлах, то есть всего 4 копии, тогда, когда несколько поисковых запросов придут к упругому поиску, каждый поиск будет перенаправлен только на одну из этих 4 копий?

Я также ищу некоторое графическое представление для использования осколка реплики для лучшего понимания.

1 ответ

Решение

Старая документация, но она все еще актуальна для размещения осколков и графики: https://www.elastic.co/guide/en/elasticsearch/guide/current/replica-shards.html https://www.elastic.co/guide/en/elasticsearch/guide/current/_how_primary_and_replica_shards_interact.html

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

Причина, по которой чтения выполняются быстрее, заключается в том, что, как вы упоминали, нагрузка между узлами сбалансирована. Если один узел отвечает намного быстрее, чем другие, то результат возвращается намного быстрее. https://www.elastic.co/guide/en/elasticsearch/guide/current/distrib-read.html

Поскольку запись выполняется медленнее, целесообразно отключить фрагменты реплик для индексов, в которые вы выполняете значительные объемные записи, а затем снова включить реплики.

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

Другие вопросы по тегам