В настоящее время у нас есть кластер с 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?