不同的用例不同的elasticsearch节点

我们的Elasticsearch集群用于为前端提供search结果。 大部分stream量是可以忽略的,集群可以很好地处理负载。 然而,在每周的计划时间,生成数十万个通讯,每个通讯包含用户特定的内容,导致每个通讯的ES查询。

在此期间,我们集群的整体响应时间正在显着下降。 我们正在寻找方法来缓解这种行为,并提出了将单独的ES节点用于单独的查询问题的想法。 因此节点A将被访问用于正常stream量,而节点B将被专门访问用于通讯查询。 这样,节点B只会导致通讯查询放缓,这很好。

像这样的集群设置可行/可行/可取? 有更好的select吗?

前端使用的数据是否与每周通讯工作使用的数据相同? 如果它被分割成不同的索引,你可以使用Shard Allocation Filtering来确保某些索引在特定主机上结束。

另外,你也可以确保有许多节点专门用于前端,而一些专用于每周的工作。 您可以使用“rack_id”技巧来确保主/副本碎片在两个组之间正确拆分。