2015-03-17 2 views
2

Я работал над веб-сервером обмена сообщениями с использованием Spring MVC с ElasticSearch в качестве хранилища бэкэнда для операционных данных. Мы используем традиционный подход, в котором мы делаем серверы без состояния и кластеризуем их, сохраняя некоторое общее состояние с использованием Hazelcast. Кластер ElasticSearch является отдельным и доступен через Транспортный клиент.Запуск кластера производства Elasticsearch во встроенном режиме

Я столкнулся с некоторыми примерами с помощью клиента Node и обнаружил, что мы можем сгруппировать серверы приложений с помощью ElasticSearch. Затем каждый узел сможет обслуживать сервисы REST, а также сохранять оперативные данные. Я запустил небольшой кластер из 4 узлов и, похоже, работает нормально.

Есть ли подходы к использованию ElasticSearch таким образом? Кто-нибудь запускает такую ​​установку в производстве? Кажется, что все статьи и сообщения на эту тему направлены на выполнение интеграционных тестов с использованием встроенного сервера, но не для развертывания производства.

ответ

1

Да, есть подводные камни:

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

И я уверен, что есть другие, которые нужно добавить.

Как я использую встроенный экземпляр ElasticSearch в моем webapp, я могу посоветовать, что не рекомендую использовать его таким образом в производстве, если у вас нет особых потребностей.

Смежные вопросы