为什么带有默认路由的文档检索请求会转到弹性群集中的任何节点?

时间:2017-08-25 14:11:46

标签: elasticsearch

我正在阅读弹性文档,并在以下link

在第1点和第2点,它说“请求转到节点1.节点1发现该文档属于节点0。”

因为,默认路由是在文档的_id上完成的,那么为什么请求本身不会出现在节点0上(基于默认路由)? 为什么请求进入节点1(必须找出文档在节点0上)?

如果请求直接落在docuemnt所属的节点上,那么效率会更高,然后此节点应该已经完成​​负载平衡(如果需要,可以将请求移动到副本分片)。

1 个答案:

答案 0 :(得分:0)

你是对的。在第一次观察时,发生了无用的重新路由。但是,为了防止热点,默认情况下,请求以循环方式路由到三个分片中的任何一个。

想象一下,您只使用该客户端连接到其中一个群集节点,然后您始终只查询该节点,可能未充分利用其他节点。这就是默认情况下循环的原因。

但是,您可以通过将preference参数设置为_local

来更改行为