elasticsearch,load-balancing,elasticsearch-jest,Java,elasticsearch,Load Balancing,Elasticsearch Jest" /> elasticsearch,load-balancing,elasticsearch-jest,Java,elasticsearch,Load Balancing,Elasticsearch Jest" />

Java 使用JEST客户端在ElasticSearch中的节点之间切换

Java 使用JEST客户端在ElasticSearch中的节点之间切换,java,elasticsearch,load-balancing,elasticsearch-jest,Java,elasticsearch,Load Balancing,Elasticsearch Jest,我的ElasticSearch集群中有3个节点。 例如10.10.0.1、10.10.0.2、10.10.0.3 现在,我正在尝试使用Jest客户端API连接到集群,并给出上述节点之一的IP(10.10.0.1)。现在,如果节点(10.10.0.1)关闭,那么这是否意味着我将无法访问集群 如果我们有多个节点,并且我们尝试使用一个IP地址从代码连接到集群,那么如何处理这种问题 或 我应该去创建另一个IP地址的连接吗?我觉得这是一种非常粗糙的方式,因为如果我们有100个节点,那么我们最终会一个接一个

我的ElasticSearch集群中有3个节点。 例如10.10.0.1、10.10.0.2、10.10.0.3

现在,我正在尝试使用Jest客户端API连接到集群,并给出上述节点之一的IP(10.10.0.1)。现在,如果节点(10.10.0.1)关闭,那么这是否意味着我将无法访问集群

如果我们有多个节点,并且我们尝试使用一个IP地址从代码连接到集群,那么如何处理这种问题


我应该去创建另一个IP地址的连接吗?我觉得这是一种非常粗糙的方式,因为如果我们有100个节点,那么我们最终会一个接一个地连接到100个节点

我想看看如何创建一个称为客户机节点的节点。客户端节点的node.data设置为false,因此当它是集群的完整成员时,它不会在本地存储任何数据。这将从处理文档索引的节点上卸载查询处理,并提供负载平衡方法的开端

考虑到Elasticsearch的大多数软件故障场景都围绕着破坏JVM堆,并且当您只进行查询处理而不维护索引时,这种无数据节点的故障概率要低得多。此外,这种方法可以扩展到一种本地负载平衡器

如果要在应用服务器上运行客户端节点elasticsearch实例,则可以有效地提供本地负载平衡。该节点将向集群中需要包含在特定查询中的所有其他节点发送查询。由于该软件与应用程序软件运行在同一台服务器上,因此在应用程序服务器仍处于运行状态时,可以消除所连接节点的故障模式

这里详细讨论了这种体系结构方法:

在客户端节点上还有更多内容:

或者,您可以使用不使用REST接口的本机Java Elasticsearch api—这允许您的Java应用程序作为集群的成员节点进行连接,在这种情况下,它将了解所有其他节点,并能够将查询路由到正确的节点。我将研究一下客户端节点和传输节点方法: