对ElasticSearch主副分片的理解

本文详细解析了Elasticsearch中主分片和副分片的工作机制,包括它们的分布方式、作用及优缺点,同时对比了ES与MySQL在读写分离方面的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ES索引中主副分片的分布:

1:当新建一个索引库时,可以预先设置其会被分为N个分片(主分片),同时可以为每个主分片产生N个备份分片(副分片)。

2:N个主分片随机分布在集群的多个节点中;N个副分片也是随机的分布在集群的多个节点中,但是副分片和其主分片不会在一个节点上。

ES索引中主副分片的作用:

1:当在该索引库中新增一个文档时,会通过计算该文档ID的哈希值来决定将该文档存储到哪个主分片上;随后会将该操作同步到该主分片的所有副本分片上,做到主副数据的一致。(主从复制的过程由ES自身完成

2:当在该索引库中修改或者删除一个文档时,根据文档ID找到文档所在的主分片,并进行操作;随后会将该操作同步到该主分片的所有副本分片上,做到主副数据的一致。(主从复制的过程由ES自身完成

3:当搜索索引中的文档时,每次都会从主分片和副分片中选择一套完整的分片来组合成一个索引,以供搜索,而且每次搜索请求主副的组合可能不一样;这样当并发搜索很多时,就可以把压力分散在多个节点上,做到负载均衡。(提高了搜索性能/并发吞吐量)(综合1、2、3发现,读写请求的分发也是由ES自身完成的

4:当集群中某个节点宕机,该节点上所有分片中的数据全部丢失(既有主分片,又有副分片);丢失的副分片对数据的完整性没有影响,丢失的主分片在其他节点上的副分片就会自动变成主分片;所以整个索引的数据完整性没有被破坏。(提高了容错性/容灾性

副分片的优点和缺点

优点:

1:副分片可以提高搜索性能,提高并发吞吐量。

2:副分片可以提高容错性/容灾性。

缺点:

1:当副分片过多时,ES做主分片和副分片之间的数据同步时,消耗的资源和性能也不容小觑。

ES的主副分片和mysql的读写分离的对比

1:ES的主从复制由ES自身完成,mysql的主从复制需由开发者来完成。

2:ES的读写请求的分发也由ES自身完成,mysql的则需要由开发者自身来完成。 

mysql读写分离参考:https://blog.csdn.net/ITWANGBOIT/article/details/102933213

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值