原文网址:ElasticSearch--分片和副本--原理_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍ES的分片和副本的原理。

粉丝福利:有很多粉丝私信问我有没有Java的面试及PDF书籍等资料,我整理一下,包含:真实面试题汇总、简历模板、PDF书籍、PPT模板等。这些是我自己也在用的资料,面试题是面试官问到我的问题的整理,其他资料也是我自用的,真正实用、靠谱。资料可以从这里免费获取:资料地址

什么是分片

Elasticsearch集群允许系统存储的数据量超过单机容量,这是通过shard实现的。在一个索引index中,数据(document)被分片处理(sharding)到多个分片上。也就是说:每个分片都保存了全部数据中的一部分。

一个分片是一个 Lucene 的实例,它本身就是一个完整的搜索引擎。文档被存储到分片内,但应用程序直接与索引而不是与分片进行交互。

什么是副本

说明

为了解决访问压力过大时单机无法处理所有请求的问题,Elasticsearch集群引入了副本策略replica。副本策略对index中的每个分片创建冗余的副本。

副本的作用如下:

1. 提高系统容错性

当分片所在的机器宕机时,Elasticsearch可以使用其副本进行恢复,从而避免数据丢失。

2. 提高ES查询效率

处理查询时,ES会把副本分片和主分片公平对待,将查询请求负载均衡到副本分片和主分片。

副本分片是越多越好吗?

答案当然是 no ,原因有以下两点:

(1)多个 replica 可以提升搜索操作的吞吐量和性能,但是如果只是在相同节点数目的集群上增加更多的副本分片并不能提高性能,因为每个分片从节点上获得的资源会变少,这个时候你就需要增加更多的硬件资源来提升吞吐量。

(2)更多的副本分片数提高了数据冗余量,保证了数据的完整性,但是根据上边主副分片之间的交互原理可知,分片间的数据同步会占用一定的网络带宽,影响效率,所以索引的分片数和副本数也不是越多越好。

设置分片与副本的方法

创建索引的命令:

PUT /my_temp_index
{"settings": {"number_of_shards" :   5,"number_of_replicas" : 1}
}
  • number_of_shards

    • 每个索引的主分片数,默认值是 5 。
    • 这个配置在索引创建后不能修改。这里和索引分片的算法有关,因为索引通过取模算法判断分到哪个分片,如果改变了主分片数就无法正常查询之前的索引。
  • number_of_replicas
    • 每个主分片的副本数,默认值是 1 。
    • 这个配置可以修改。

分片示例

示例1:启动2个ES节点。创建5个分片,1个副本

结果如下:

也就是:

上图中,黄色的代表主分片,绿色的是副本。可以发现,分片与其副本不在同一个节点内。这是非常合理的,因为副本本来就是主分片的备胎,当主分片节点挂了,另外一个节点的副本将会充当主分片,如果它们在同一个节点内,副本将发挥不到作用。

示例2:启动3个ES节点。创建5个分片,1个副本

分片的路由原理

见 :ElasticSearch--分片的路由原理_IT利刃出鞘的博客-CSDN博客

ElasticSearch--分片和副本--原理相关推荐

  1. Elasticsearch 分片和副本策略

    Elasticsearch 基本概念 Cluster 集群,一个ES集群是由多个节点(Node)组成的,每个集群都有一个cluster name 作为标识 `cluster.name: [elasti ...

  2. es的分片和副本_Elasticsearch的分布式存储与分片内部原理

    1.文档如何存储 1.1 分片与路由 当索引一个文档的时候,文档会被存储到一个主分片中.Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存 ...

  3. elasticsearch - 节点、集群分片及副本、CRUD

    分布式系统的可用性和扩展性 高可用性 服务可用性 :允许有节点停止服务 数据可用性 :部分节点丢失,不会丢失数据 可扩展性 请求量提升 / 数据的不断增长(将数据分布都所有接点上) 分布式特性 ela ...

  4. Elasticsearch的分片和副本

    Elasticsearch是一个分布式搜索和分析引擎,其设计目标是在分布式环境下处理海量数据.为了实现这个目标,Elasticsearch将数据分割成多个分片,并在多台服务器上进行存储和处理.每个分片 ...

  5. elasticsearch 分片_Elasticsearch教程:动手实践

    本教程可帮助您开始使用Elasticsearch. 您将学习如何创建和删除索引,如何将数据加载到索引以及如何执行基本查询. > Visualizing data in Kibana, image ...

  6. ElasticSearch集群架构原理

    一.  Elasticsearch架构原理 1.Elasticsearch的节点类型 在Elasticsearch主要分成两类节点,一类是Master(主节点),一类是DataNode(数据节点),还 ...

  7. 2021年大数据Kafka(七):Kafka的分片和副本机制

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的分片和副本机制 一.分片机制 二.副本机制 三. ...

  8. es的分片和副本_Elasticsearch 集群分配多少分片合理

    Elasticsearch 是一个非常通用的平台,支持各种用户实例,并为组织数据和复制策略提供了极大的灵活性.但是,这种灵活性有时会使我们很难在早期确定如何很好地将数据组织成索引和分片,尤其是不熟悉 ...

  9. ElasticSearch之集群原理

    ElasticSearch 的主旨是随时可用和按需扩容. 而扩容可以通过购买性能更强大(垂直扩容,或 纵向扩容) 或者数量更多的服务器(水平扩容,或 横向扩容 )来实现. 虽然 ElasticSear ...

最新文章

  1. 《Linux实践及应用》
  2. .Net转Java自学之路—Hibernate框架篇三(查询方式)
  3. iOS 支付宝支付集成获取私钥
  4. python selenium T3
  5. cas .net 重定向循环_接口测试平台接入企业cas(一)
  6. Kinect for Windows V2和V1对比开发___彩色数据获取并用OpenCV2.4.10显示
  7. python转json的函数_pandas.DataFrame.to_json按行转json的方法
  8. spring-boot-devtools热加载不起作用
  9. php表示昨天_php 获取今日、昨日、上周、本月的起始与结束时间戳
  10. java进账和转账需要锁吗,Spring与Java中的锁
  11. 字体识别在线工具-整理
  12. Android8.0.0的BUG Only fullscreen opaque activities can request orientation
  13. Launcher app prediction
  14. AVR单片机的BOOT区
  15. Win XP iis组件补丁(ghost xp)iis5.1
  16. Error launching IDEA解决方法
  17. 「Computer keyboard」- 在键盘中,手指的摆放位置 @20210331
  18. 封装CopyFileEx函数,实现文件复制中的暂停,控速,获取进度
  19. corosync+pacemaker+web集群
  20. Get请求,参数为@RequestBody的http请求

热门文章

  1. 我能想到最快乐的事,就是把所有异性都处成朋友
  2. DO-Conv 涨点模块
  3. windows服务器安装Bonobo Git Server
  4. java abcd_Java的一个小题目,字母abcd 对应1234类推,输入单词得到对应的数字和...
  5. L1-6 喝嘤料 (15 分)
  6. U盘坏了数据可以恢复吗?超详细的U盘数据恢复图文教程!
  7. 音视频开发为什么要学SRS流媒体服务器
  8. 区别:迭代加深搜索广度优先搜索
  9. 浪潮受邀出席“市长论坛-深圳智慧城市国际圆桌研讨会”
  10. mysql两个时间相减的分钟数_mysql 俩个时间相减后取分钟