У меня есть кластер из 3 узлов ElasticSearch, работающих на AWS EC2. Эти узлы настраиваются с помощью OpsWorks/Chef. Я намерен сконструировать этот кластер очень упругий и эластичный (узлы могут входить и выходить, когда это необходимо).
Из всего, что я прочитал об ElasticSearch, кажется, что никто не рекомендует устанавливать балансировку нагрузки перед кластером; вместо этого кажется, что рекомендация состоит в том, чтобы сделать одну из двух вещей:
-
Укажите ваш клиент по URL/IP одного node, пусть ES выполнит балансировку нагрузки и надеется, что node никогда не опустится.
-
Скопируйте URL-адреса/IP-адреса всех ваших узлов в клиентское приложение и попросите приложение обработать логику восстановления после сбоя.
Мой фон в основном работает в веб-фермах, где просто разумно создавать огромный пул автономных веб-серверов, бросать перед ним ELB и позволять балансировщику выбирать, какие узлы живы или мертвы. Почему ES, похоже, не поддерживает эту же архитектуру?