Наш кластер Elasticsearch используется для предоставления результатов поиска для внешнего интерфейса. Большая часть трафика довольно незначительна, и кластер отлично справляется с нагрузкой. Однако в определенное время каждую неделю создается несколько сотен тысяч информационных бюллетеней, каждая из которых содержит пользовательский контент, в результате чего для каждой из них создается запрос ES.
За это время общее время отклика нашего кластера значительно ухудшается. Мы ищем способы смягчить такое поведение и пришли к идее создания отдельных узлов ES для решения отдельных задач запросов. Таким образом, доступ к узлу A будет осуществляться для обычного трафика, а к узлу B - исключительно для запросов информационных бюллетеней. Таким образом, узел B только замедлит выполнение запросов к информационным бюллетеням, и это нормально.
Возможна / целесообразна / целесообразна такая установка кластера? Есть ли лучшие альтернативы?
Данные, используемые веб-интерфейсом, такие же, как и в еженедельной рассылке новостей? Если он разделен на разные индексы, вы можете использовать Фильтрация распределения сегментов чтобы убедиться, что определенные индексы попадают на определенные хосты.
В качестве альтернативы вы можете убедиться, что несколько узлов выделены для внешнего интерфейса, а некоторые - для еженедельной работы. Вы должны использовать уловку "rack_id", чтобы убедиться, что первичные / реплики шарды правильно разделены между двумя группами.