zoukankan      html  css  js  c++  java
  • ElasticSearch 基础分布式架构+shard+replica

    目录

    1、Elasticsearch对复杂分布式机制的透明隐藏特性
    2、Elasticsearch的垂直扩容与水平扩容
    3、增减或减少节点时的数据rebalance
    4、master节点
    5、节点对等的分布式架构

    6、shard&replica机制再次梳理

    7、单node环境下创建index是什么样子的

    --------------------------------------------------------------------------------------------------------------------

    1、Elasticsearch对复杂分布式机制的透明隐藏特性

    Elasticsearch是一套分布式的系统,分布式是为了应对大数据量
    隐藏了复杂的分布式机制

    分片机制(我们之前随随便便就将一些document插入到es集群中去了,我们有没有care过数据怎么进行分片的,数据到哪个shard中去)

    cluster discovery(集群发现机制,我们之前在做那个集群status从yellow转green的实验里,直接启动了第二个es进程,那个进程作为一个node自动就发现了集群,并且加入了进去,还接受了部分数据,replica shard)

    shard负载均衡(举例,假设现在有3个节点,总共有25个shard要分配到3个节点上去,es会自动进行均匀分配,以保持每个节点的均衡的读写负载请求)

    shard副本,请求路由,集群扩容,shard重分配

    --------------------------------------------------------------------------------------------------------------------

    2、Elasticsearch的垂直扩容与水平扩容

    垂直扩容:采购更强大的服务器,成本非常高昂,而且会有瓶颈,假设世界上最强大的服务器容量就是10T,但是当你的总数据量达到5000T的时候,你要采购多少台最强大的服务器啊

    水平扩容:业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力

    普通服务器:1T,1万,100万
    强大服务器:10T,50万,500万

    扩容对应用程序的透明性

    --------------------------------------------------------------------------------------------------------------------

    3、增减或减少节点时的数据rebalance

    保持负载均衡

    --------------------------------------------------------------------------------------------------------------------

    4、master节点

    (1)创建或删除索引
    (2)增加或删除节点

    --------------------------------------------------------------------------------------------------------------------

    5、节点平等的分布式架构

    (1)节点对等,每个节点都能接收所有的请求
    (2)自动请求路由
    (3)响应收集

    ------------------------------------------------------------------------------------------------

    6、shard&replica机制再次梳理

    (1)index包含多个shard
    (2)每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力
    (3)增减节点时,shard会自动在nodes中负载均衡
    (4)primary shard和replica shard,每个document肯定只存在于某一个primary shard以及其对应的replica shard中,不可能存在于多个primary shard
    (5)replica shard是primary shard的副本,负责容错,以及承担读请求负载
    (6)primary shard的数量在创建索引的时候就固定了,replica shard的数量可以随时修改
    (7)primary shard的默认数量是5,replica默认是1,默认有10个shard,5个primary shard,5个replica shard
    (8)primary shard不能和自己的replica shard放在同一个节点上(否则节点宕机,primary shard和副本都丢失,起不到容错的作用),但是可以和其他primary shard的replica shard放在同一个节点上

    ------------------------------------------------------------------------------------------------

    7、图解单node环境下创建index是什么样子的

    (1)单node环境下,创建一个index,有3个primary shard,3个replica shard
    (2)集群status是yellow
    (3)这个时候,只会将3个primary shard分配到仅有的一个node上去,另外3个replica shard是无法分配的
    (4)集群可以正常工作,但是一旦出现节点宕机,数据全部丢失,而且集群不可用,无法承接任何请求

    PUT /test_index
    {
    "settings" : {
    "number_of_shards" : 3,
    "number_of_replicas" : 1
    }
    }

     

    8.2个node环境下replica shard是如何分配的

    (1)replica shard分配:3个primary shard,3个replica shard,1 node
    (2)primary ---> replica同步
    (3)读请求:primary/replica

     

     

  • 相关阅读:
    springboot2 pagehelper 使用笔记
    MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)
    浅谈PageHelper插件分页实现原理及大数据量下SQL查询效率问题解决
    idea设置JVM运行参数
    java.lang.OutOfMemoryError: Java heap space内存不足问题
    lasticsearch最佳实践之分片使用优化
    Elasticsearch分片优化
    ELASTICSEARCH 搜索的评分机制
    elasticsearch基本概念与查询语法
    mysql 用户及权限管理 小结
  • 原文地址:https://www.cnblogs.com/Transkai/p/11090236.html
Copyright © 2011-2022 走看看