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