对ElasticSearch主副分片的理解

摘要:
ES索引中主副分片的分布:1:当新建一个索引库时,可以预先设置其会被分为N个分片(主分片),同时可以为每个主分片产生N个备份分片(副分片)。缺点:1:当副分片过多时,ES做主分片和副分片之间的数据同步时,消耗的资源和性能也不容小觑。ES的主副分片和mysql的读写分离的对比1:ES的主从复制由ES自身完成,mysql的主从复制需由开发者来完成。

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

免责声明:文章转载自《对ElasticSearch主副分片的理解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux串口通信之termios结构体说明计算PE文件校验和下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[心得体会]mysql复习

1. 进入企业需要注意的事情(1) 查看测试服和本地的mysql版本是否一致(2) 确认sql_mode是否和线上版本一致 showVARIABLESLIKE'sql_mode'; (3) mysql sql_mode 常用设置详解: ONLY_FULL_GROUP_BY: 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY...

MongoDB优化与一些需要注意的细节

这里总结下这段时间使用mongo的心得,列出了几个需要注意的地方。 1. 系统参数及mongo参数设置  mongo参数主要是storageEngine和directoryperdb,这两个参数一开始不选定后续就无法再更改。 directoryperdb主要是将数据库分文件夹存放,方便后续的备份及数据迁移。 storageEngine(存储引擎)默认使...

Oracle分区表

最近因为业务上客户数据的表空间占用过大,而想通过删除一部分数据来缩小表空间文件的大小无法实现,故想到使用分区表来实现 分区表分为范围分区(range)、哈希分区(hash)、列表分区(list)、以及一些组合分区(range-hash、range-list) 以下为各个分区的创建语法: 1、范围分区(range) 简介: 语法: 1     CREATE...

用Nexus做Maven私服全攻略

Nexus简介 Nexus是Sonatype推出的强大Maven仓库管理器产品,要比以前TSS上介绍的Artifactory要好使用的多,也是一个拆箱即用的Java App,内嵌Jetty容器和Java Wrapper做Windows服务,安装简单到解压然后双击install即可。更详细的帮助手册请上官方网站查看,这里推荐一个翻译中的书籍——《Maven权...

Select 语句执行顺序以及如何提高Oracle 基本查询效率

作者:技术改变世界 今天把这几天做的练习复习了一下,不知道自己写得代码执行的效率如何以及要如何提高,于是乎上网开始研究一些材料,现整理如下: 首先,要了解在Oracle中Sql语句运行的机制。以下是sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权...

db2 reorg详解

reorgchk,检查table index 是否需要重组。reorg 重组,重新放置数据位置。runstats 统计信息,可以优化查询器 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常、安全、高效运行,防止一些错误重复发生。 由于DB2使用CBO作为数据库的优化器,数据库对象的状态信息对数据库使用...