Как получить доступ к кластеру Elasticsearch в VPN с помощью Spring Boot

У меня есть кластер Elasticearch в VPN.

Как приложение Spring Boot может безопасно обращаться к кластеру, если оно расположено на отдельном сервере за пределами VPN, и как его настроить в конфигурации загрузки Spring (application.yml / application.properties)?

Я также хочу, чтобы приложение подключалось к кластеру таким образом, чтобы, если у меня есть, например, 2 основных допустимых узла и один из них, соединение остается неповрежденным.

Всего 1 ответ


  1. если у вас есть только два узла-хозяина, вы рискуете «разделить мозговую проблему». существует простая формула для вычисления требуемого количества главных узлов:

    M = 2F +1 (m = количество мастер-узлов, f = количество мастер-узлов, которые могут быть сбой в одно и то же время)

  2. в вашем приложении определите все главные узлы в качестве цели для клиента elasticsearch. Клиент выполнит переход на другой ресурс. см. документацию клиента elasticsearc или https://qbox.io/blog/rest-calls-made-easy-part-2-sniffing-elasticsearch для примера

  3. приложение vpn не должно обрабатываться вашим приложением. инфраструктура (сервер, брандмауэр) - это подходящее место для ее адресации. попробуйте разработать агностику вашей прикладной среды. это сделает ваше приложение более легким для разработки, поддержки и повышения его надежности для изменений в инфраструктуре


Есть идеи?

10000