首页 > 其他分享 >ElasticSearch Shard——本质上是做分布式扩展,副本对于集群的稳定性有很强的影响

ElasticSearch Shard——本质上是做分布式扩展,副本对于集群的稳定性有很强的影响

时间:2023-06-01 14:35:06浏览次数:50  
标签:shard Shard replica ElasticSearch 集群 节点 分布式

什么是一个Shard?

Shard就是一个Lucene Index,参照文章(深入理解Shard和Lucene Index)。

Index需要多少个Shard?

回答这个问题,我们需要先谈谈节点,一个集群有多个节点,具体需要多少个节点合适,是另外一个问题,但是这个数字也会影响我们对Shard数的设置。

Shard数 = Node数?

总体上说,当我们节点数和Shard数相等时,ElasticSearch集群的性能可以达到最优。即,对于一个3节点集群,我们为每个集群节点分配一个Shard,总共3个Shard。但是由于ElasticSearch的不可变性(Immutable)的限制,系统无法对Shard进行重新拆分分配,除非重新索引这个文件集合。所以,当我们需要增加更多节点的时候,又希望Shard能利用到增加节点带来的系统性能提升时,我们就不得不进行重新索引,由于重索引开销巨大,这是我们不希望看到的。

StackExchange用ElasticSearch支持它的搜索,当前(2016-3-1日),它网站的ElasticSearch索引占用440GB。

如果需要重新建立索引,将会是一个巨大的开销,为了支持未来可能的水平扩展,我们会为集群分配比node数更多的shard数,也就是说每个节点会有多个Shard。

如果单个node分配多个shard,就会引入另外一系列的性能问题,我们知道对于任意一次完整的搜索,ElasticSearch会分别对每个shard进行查询,最后进行汇总。当节点数和shard数是一对一的时候,所有的查询可以并行运行。但是,对于具有多个shard的节点,如果磁盘是15000RPM或SSD,可能会相对较快,但是这也会存在等待响应的问题,所以通常不推荐一个节点超过2个shard。

3节点6shard,即每个节点2shard,这可以使我们在未来轻松的横向扩展到6个节点,应对许多极端的场景。

Replicas数呢?

Replica也是Shard,与shard不同的是,replica只会参与读操作,同时也能提高集群的可用性。对于Replica来说,它的主要作用就是提高集群错误恢复的能力,所以replica的数目与shard的数目以及node的数目相关,与shard不同的是,replica的数目可以在集群建立之后变更,切代价较小,所以相比shard的数目而言,没有那么重要。

Replica的故事(宕机)

3 node, 3 shard, 0 replica

一个节点宕机

ElasticSearch Shard——本质上是做分布式扩展,副本对于集群的稳定性有很强的影响_搜索

整个服务不可用

3 node, 3 shard, 1 replica (each)

一个节点宕机

ElasticSearch Shard——本质上是做分布式扩展,副本对于集群的稳定性有很强的影响_elasticsearch_02

两个节点宕机

ElasticSearch Shard——本质上是做分布式扩展,副本对于集群的稳定性有很强的影响_性能提升_03

服务仍然可用

3 node, 3 shard, 2 replica (each)

当存储费用较低时,可以考虑

ElasticSearch Shard——本质上是做分布式扩展,副本对于集群的稳定性有很强的影响_搜索_04


标签:shard,Shard,replica,ElasticSearch,集群,节点,分布式
From: https://blog.51cto.com/u_11908275/6393753

相关文章

  • Alluxio : 开源分布式内存文件系统
    Alluxio:开源分布式内存文件系统Alluxioisamemoryspeedvirtualdistributedstoragesystem.Alluxio是一个开源的基于内存的分布式存储系统,现在成为开源社区中成长最快的大数据开源项目之一。公司简介:由项目的创建者李浩源以及来自UCBerkeley,Google,CMU,Palantir,Stan......
  • Skywalking+Elasticsearch安装及应用(邮箱告警)
    1、Skywalking概述Skywalking是一个可观测性分析平台和应用性能管理系统,它也是基于OpenTracing规范、开源的AMP系统。Skywalking提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。SkyWalking特点:1)多语言自动探针2)为多种......
  • Cassandra——类似levelDB的基于p2p架构的分布式NOSQL数据库
     C:Consistency一致性•A:Availability可用性(指的是快速获取数据)•P:ToleranceofnetworkPartition分区容忍性(分布式)10年前,EricBrewer教授指出了著名的CAP理论,后来SethGilbert和Nancylynch两人证明了CAP理论的正确性。CAP理论告诉我们,一个分布式系统不可能满足......
  • 在学习分布式系统时遇到的五个常见误解
    哈喽大家好,我是咸鱼我们知道,随着企业规模或者说业务规模的不断扩大,为了应对不断增长的业务需求和提高系统的可伸缩性、可靠性和性能,计算机系统由一开始的单体系统逐渐发展成分布式系统那么今天咸鱼给大家介绍一些关于小白在学习分布式系统遇到的一些常见误解误解1.网络是可靠的......
  • MyBatis+Sharding-JDBC实体类LocalDateTime类型字段查询报SQLFeatureNotSupportedExce
    问题最近协助渠道组开发新需求,封装实现了一个公共模块供不同渠道项目使用。以前各个渠道项目有很多相似的菜单和功能,各自项目里自己的代码实现,本公共模块对新需求的功能点进行抽象,减少重复代码,提高模块复用性和可维护性。目前有2个渠道项目接入了该公共模块,自测时发现其中1个运......
  • elasticsearch3
    模糊查询#前缀搜索:prefix概念:以xx开头的搜索,不计算相关度评分。注意:前缀搜索匹配的是term,而不是field。前缀搜索的性能很差前缀搜索没有缓存前缀搜索尽可能把前缀长度设置的更长语法:GET<index>/_search{"query":{"prefix":{"<fiel......
  • 分布式事务
    分布式事务回顾事务什么是事务?一组对数据库的操作,整体要么一起成功,要么一起失败事务的特性?一致性原子性在项目中做事务控制?怎么做?在启动类上加@EnableTransactonManager事务加在service层,加在实现类上或者接口上,都可以@transactional分布式事务背景CAP:......
  • 生态共建丨崖山数据库系统与杉岩分布式存储系统完成兼容互认证 
    近日,深圳计算科学研究院(以下简称:深算院)自主研发设计的数据库管理系统YashanDBV22.2产品与深圳市杉岩数据技术有限公司(以下简称:杉岩数据)的分布式存储系统完成兼容性互认证。测试结果表明,双方产品完全兼容,在功能、性能及兼容性方面表现良好,整体运行稳定高效。崖山数据库系统YashanDB......
  • Elasticsearch专题精讲—— REST APIs —— Document APIs —— 索引API
    RESTAPIs——DocumentAPIs——索引APIhttps://www.elastic.co/guide/en/elasticsearch/reference/8.8/docs-index_.html#docs-index_ AddsaJSONdocumenttothespecifieddatastreamorindexandmakesitsearchable.Ifthetargetisanindexandth......
  • Greenplum——升级的分布式PostgresSQL
    Greenplum数据库基于PostgreSQL开源技术。本质上讲,它是多个PostgreSQL实例一起充当一个数据库管理系统。Greenplum以PostgreSQL8.2.15为基础构建,在SQL支持、特性、配置选项和终端用户功能方面非常像PostgreSQL,用户操作Greenplum就跟平常操作PostgreSQL一样。不过,为了支持Greenplum......