如何使用 Spring Boot 在 VPN 中访问 Elasticsearch 集群

How to access Elasticsearch Cluster in VPN with Spring Boot

我在 VPN 中有一个 Elasticsearch 集群。

如果我的 Spring 启动应用程序位于 VPN 之外的单独服务器上,它如何安全地访问集群?我如何在 Spring 启动配置(应用程序。yml/application.properties)?

我还希望应用程序以某种方式连接到集群,这样如果我有,例如2个Master合格节点,1个失败,连接保持不变。

  1. 如果您只有 2 个 master eligble 节点,您将面临 "split brain problem" 的风险。有一个计算所需主节点数量的简单公式:

    M = 2F +1(m=主节点数,f=可能同时失效的主节点数)

  2. 在您的应用程序中将所有主节点定义为 elasticsearch 客户端的目标。客户端将处理故障转移。请参阅 elasticsearch 客户端文档或 https://qbox.io/blog/rest-calls-made-easy-part-2-sniffing-elasticsearch 示例

  3. 您的应用程序不应处理 vpn。基础设施(服务器、防火墙)是处理它的正确位置。尝试开发不可知的应用程序环境。这将使您的应用程序更易于开发和维护,并使其对基础架构更改更加稳健