在弹性搜索集群之前配置负载均衡器的最佳方法

时间:2018-05-14 11:21:30

标签: elasticsearch

目前,我们在GCP中有一个运行6.2版本的3节点集群,没有专用的主节点。所有这些都在配置方面相同(4个vCPU,15 GB RAM节点 - 7 GB设置为ES的xmx)和设置。我们使用org.elasticsearch.client.RestClient来访问ES集群。此设置已运行正常约2个月。今天早上我们在应用服务器和检查日志时遇到了一些问题,我可以看到ES上的所有操作(索引和搜索)都很慢。主要在集群中创建数据的应用程序访问其中一个节点(比如N1)和主要搜索的应用程序(我们在2-16个节点的集群上运行该应用程序的多个实例)访问另一个节点(比如N2)。线程转储显示许多线程等待连接到ES:

at org.elasticsearch.client.RestClientBuilder.createHttpClient(RestClientBuilder.java:202)

这引发了对单个节点是否因所有连接请求进入负担过重的疑虑。因此我改变了一些搜索节点以连接到第三个节点(比如N3)而不是N2。在此更改之后,情况得到改善,从ES访问数据变得非常快。我不确定这是否是唯一的原因,或者我的应用程序服务器上的负载是否在我想出这个并做出改变时大幅减少了。我觉得这种变化会产生很大的不同。因此我觉得设置LB来分配负载会更好。

我已经阅读了本论坛以及有关ES集群前负载均衡器必要性的弹性论坛上的几篇帖子,我在不同的帖子中看到了不同的回复: a)有人说LB不是必需的 b)有些人建议设置LB并仅包含主节点 c)有人建议设置两个LB--一个用于在ES中写入/索引文档,并且只包含此LB中的数据节点,另一个用于查询,并且仅包含此LB中的客户端节点

建议设置LB的方法是什么?

0 个答案:

没有答案