ES---底层原理

ES—底层原理

ES一般情况下分为:主节点,子节点,云端节点

主节点:(master:例如下面的boss)负责创建索引、删除索引、分配分片、追踪集群中的节点状态等

子节点 :负责存储数据,修改索引,查询信息等

云端节点: 负责当数据丢失情况,进行恢复

索引分片

在这里插入图片描述
每个索引默认有5个分片,1个副本数
number_of_shards:分片数
number_of_replicas:备份数
在这里插入图片描述
【注意:该图是ES的head插件创建索引时的截图】

至于怎么将文件存储到不同的节点,es会根据hashcode(routing)%分片数,进行分配
在这里插入图片描述
颜色粗的—>主分片
颜色浅的–>备份分片

修改时先从备份分片进行修改,等主节点确定修改无误,才会将备份分片的内容复制拷贝到主分片,如果修改失败,主分片可以恢复备份分片。但一般ES不建议修改,因为ES本身是用来做查询和存储的,修改起来会比较麻烦

查询信息时,首先master向包含主分片的节点发送消息(一般情况下master只包含主分片,但不能全部放在主节点上,因为要负载均衡),我要查询某某信息,对应的节点就开始查询,假如对应的节点挂了,master会查询拥有备份信息的节点,并提升备份分片为主分片,而且通知其他存活且空闲节点备份信息,形成备份分片。又假如拥有主分片的查询速度过慢,又存在拥有备份分片的空闲节点,那么会再请求这个空闲节点同时查询。

先写这么多,

猜你喜欢

转载自blog.csdn.net/qq_43288259/article/details/114920669
今日推荐