zoukankan      html  css  js  c++  java
  • elasticsearch 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放在同一个节点上

    通过以下方式可以在创建索引时指定 primary shard 和 replica 的数量。

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

    集群状态变化:

    假设有3个节点,9个shard (3个primary shard,每个 primary shard 有 2 个 replica shard),具体分配如下表,假设 Node1 为 master

    Node1 Node2 Node3
    P0, R1-1, R2-1 P1, R0-1, R2-2 P2, R1-2, R0-2

    1. 如果 Node1 宕机,此时集群状态为 red, 集群会自动选举一个节点为新的 master (假设为 Node2)

    2. 新的 master 将 P0-1 这个 replica shard 升级成 primary shard, 此时 集群状态为 yellow

    3. 重新启动 Node1 节点, 会自动更新数据,此时集群状态为 green。

  • 相关阅读:
    Linux产生coredump文件(core)
    shell脚本每五分钟执行一次可执行程序(nohup)
    VIM快捷操作
    日期正则表达式
    istringstream字符串流对象
    json和pickle模块
    sys模块
    random模块
    time模块
    python的模块
  • 原文地址:https://www.cnblogs.com/langfanyun/p/10227585.html
Copyright © 2011-2022 走看看