Лучший способ настроить балансировщик нагрузки перед упругим поисковым кластером - PullRequest
0 голосов
/ 14 мая 2018

В настоящее время у нас есть кластер с 3 узлами, работающий в версии 6.2 в GCP без выделенных главных узлов. Все они идентичны с точки зрения конфигурации (4 виртуальных ЦП, 15 ГБ узлов ОЗУ - 7 ГБ, заданных как xmx для ES) и настроек. Мы используем org.elasticsearch.client.RestClient для доступа к кластеру ES. Эта установка работает нормально в течение 2 месяцев. Этим утром мы столкнулись с некоторыми проблемами на нашем сервере приложений, и при проверке журналов я увидел, что все операции (индексация и поиск) на ES выполнялись медленно. Приложение, которое в основном создает данные в кластере, обращается к одному из узлов (скажем, N1), а приложение, которое в основном выполняет поиск (у нас есть несколько экземпляров этого приложения, работающего в кластере из 2-16 узлов), обращается к другому узлу (скажем, N2). Дампы потоков показали много потоков, ожидающих подключения к ES:

at org.elasticsearch.client.RestClientBuilder.createHttpClient(RestClientBuilder.java:202)

Это вызвало сомнения в том, перегружен ли один единственный узел всеми поступающими запросами на соединение. Поэтому я изменил некоторые поисковые узлы для подключения к третьему узлу (скажем, N3) вместо N2. После этого изменения ситуация улучшилась, и доступ к данным из ES стал быстрым. Я не уверен, что это была единственная причина или нагрузка на наш сервер приложений резко снизилась к тому времени, когда я понял это и внес изменения. Я чувствую, что это изменение имело бы большое значение. Поэтому я чувствую, что настройка LB для распределения нагрузки будет лучше.

Я прочитал несколько сообщений на этом форуме, а также на эластичном форуме о необходимости балансировки нагрузки перед кластером ES, и я вижу разные ответы в разных сообщениях: а) Некоторые говорят, что LB не нужен б) Некоторые рекомендуют настроить LB и включать только мастер-узлы c) Некоторые рекомендуют установить два LB - один для записи / индексации документов в ES и включать только узлы данных в этот LB, а другой для запросов и включать только клиентские узлы в этот LB

Каков рекомендуемый способ настройки LB?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...