最近在使用 elasticsearch
有一个疑问:『总的副本数』是 主分片+副本分片 吗?
比如我创建一个 index 的时候,没有指定 number_of_replicas
按照默认的创建之后,就是如图所示:主分片为 1,副本分片为 1
所以,我的一个 doc 其实在 es 中是有两份的是吗?
破案了,number_of_replicas 的默认值是 1
我有一个 『三节点的 es 集群』,之前创建 index 的时候,没有指定 number_of_replicas
所以当时我就很奇怪,从下面的曲线看,为什么有一个节点在偷懒!
红色竖线是我加的
现在明白了!因为有一个主分片,在加一个副本分片,一共有两个。所以只能利用两个 node
但是我还是很奇怪,为什么副本分片都是副本到一台机器,而不是两台机器雨露均沾,呈现出5:2.5:2.5
一个合理的分布式系统,在该情况下,应该呈现出5:2.5:2.5
,而不是5:5:0
吧!es 的 副本分片落到那个 node 是固定的吗?
因为集群里面最小能管理的单元就是分片呀。
一个分片不能分成两个。
就像k8s集群里面,一个deployment关联了2个pod,你不能把两个pod分配到三个节点上。