Elasticsearch学习笔记(四)ElasticSearch分布式机制


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


     1、分片机制:


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

                  {
                       "settings" : {
                            "number_of_shards" : 3,
                             "number_of_replicas" : 1
                          }

                   }

               

    2、集群发现、扩容机制:


         (1)集群发现:新增的节点自动加入集群,并且接收到部分replica shard
         (2)集群扩容:
                 垂直扩容:服务器总数不变,通过单台服务器支撑更多的数据进行扩容
                 水平扩容:单台服务器支撑的数据量保持不变,通过增加服务器数量进行扩容( 优先采用方案,  一般采用水平扩容方案)
        

    3、shard副本、负载均衡、重分配机制:


         (1)shard副本:
    
          (2)负载均衡:增加很减少节点时自动进行数据的rebalance,es自动根据当前的负载均衡情况自己进行数据的重新负载均衡

         (3)重分配机制:


     4、master节点推举机制和replica shard容错机制


         (1)master节点:用于管理集群元数据(比如索引新增,删除等),索引元数据,节点的新增和移除,默认情况下,会自动选择一个节点作为matster节点

         (2)replica shard容错机制
                 如果一个master节点宕机,则master会自动选择一个node作为新的master以承担master的责任。新的master将丢失掉的某个primary shard的replica shard提升为primary shard(此时,少了一个replica shard,导致并不是所有的replica shard都是active状态了,相应的集群的健康颜色值会发生变化)
            
        

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


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

原文地址:https://www.cnblogs.com/wshcn/p/8150502.html