针对不同用例的不同 elasticsearch 节点

针对不同用例的不同 elasticsearch 节点

我们的 Elasticsearch 集群用于为前端提供搜索结果。大多数流量都非常小,集群可以很好地处理负载。然而,每周的某个时间会生成数十万份新闻通讯,每份都包含特定于用户的内容,因此需要对每份新闻通讯进行 ES 查询。

在此期间,我们集群的整体响应时间显著下降。我们正在寻找缓解此行为的方法,并提出了为不同的查询问题设置单独的 ES 节点的想法。因此,节点 A 将用于正常流量,而节点 B 将专门用于新闻稿查询。这样,节点 B 只会导致新闻稿查询速度变慢,这很好。

这样的集群设置是否可行/可行/可取?还有更好的选择吗?

答案1

前端使用的数据与每周新闻通讯作业使用的数据相同吗?如果将其拆分为不同的索引,则可以使用分片分配过滤以确保某些索引最终位于特定主机上。

或者,您可以确保一定数量的节点专用于前端,一定数量的节点专用于每周作业。您可以使用“rack_id”技巧来确保主/副本分片在两组之间正确分割。

相关内容