zoukankan      html  css  js  c++  java
  • 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)响应收集

  • 相关阅读:
    EMQTT测试--安装与测试 (windows)
    phpStudy本地搭建wordpress教程
    windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境)
    mysql允许外网访问 和修改mysql 账号密码
    mysql sql常用语句
    Mysql(MyISAM和InnoDB)及Btree和索引优化
    Python 有关网址
    Python 字典(Dictionary)操作详解
    pandas读取xlsx
    Python 学习笔记 (变量与数据类型)
  • 原文地址:https://www.cnblogs.com/wshcn/p/8150502.html
Copyright © 2011-2022 走看看