02: Elasticsearch为啥这么快

1.1 Node节点维度

    参考博客:https://www.jianshu.com/p/b50d7fdbe544

  1、多节点的集群方案

      1. 路由一个文档到一个分片中:当索引一个文档的时候,文档会被存储到一个主分片中。

      2. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?实际上,这个过程是根据下面这个公式决定的:

shard = hash(routing) % number_of_primary_shards

      3. routing 是一个可变值,默认是文档的 _id ,也可以设置成一个自定义的值。

      4. 这就解释了为什么我们要在创建索引的时候就确定好主分片的数量,并且永远不会改变这个数量

      5. 因为如果数量变化了,那么所有之前路由的值都会无效,文档也再也找不到了。

      6. 确定了在哪个分片中,继而可以判定其在哪个节点上。

      7. 那么主分片数确定的情况下,如果做集群扩容呢?

        1)下图是一种主分片的扩容办法,开始设置为5个分片,在单个节点上,后来扩容到5个节点,每个节点有一个分片。

        2)也就是说单个分片的容量变大了,但是数量并不增加。




 

 

11

posted @ 2020-04-29 22:03  不做大哥好多年  阅读(386)  评论(0编辑  收藏  举报