美文网首页
5.2-分片与集群的故障转移

5.2-分片与集群的故障转移

作者: 落日彼岸 | 来源:发表于2020-04-05 23:08 被阅读0次

    Primary Shard - 提升系统存储容量

    • 分⽚是 Elasticsearch 分布式存储的基⽯

      • 主分⽚ / 副本分⽚
    • 通过主分⽚,将数据分布在所有节点上

      • Primary Shard,可以将⼀份索引的数据,分散在多个 Data Node 上,实现存储的⽔平扩展

      • 主分⽚(Primary Shard)数在索引创建时候指定,后续默认不能修改,如要修改,需重建索引

    Replica Shard - 提⾼数据可⽤性

    • 数据可⽤性

      • 通过引⼊副本分⽚ (Replica Shard) 提⾼数据的可⽤性。⼀旦主分⽚丢失,副本分⽚可以 Promote 成主分 ⽚。副本分⽚数可以动态调整。每个节点上都有完备的数据。如果不设置副本分⽚,⼀旦出现节点硬件故 障,就有可能造成数据丢失
    • 提升系统的读取性能

      • 副本分⽚由主分⽚(Primary Shard)同步。通过⽀持增加 Replica 个数,⼀定程度可以提⾼读取的吞吐量

    分⽚数的设定

    • 如何规划⼀个索引的主分⽚数和副本分⽚数

      • 主分⽚数过⼩:例如创建了 1 个 Primary Shard 的 Index

        • 如果该索引增⻓很快,集群⽆法通过增加节点实现对这个索引的数据扩展
      • 主分⽚数设置过⼤:导致单个 Shard 容量很⼩,引发⼀个节点上有过多分⽚,影响性能

      • 副本分⽚数设置过多,会降低集群整体的写⼊性能

    单节点集群

    • 副本⽆法分⽚,集群状态⻩⾊
    PUT tmdb
    {
      "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 1
      }
    }
    
    image.png

    增加⼀个数据节点

    image.png
    • 集群状态转为绿⾊

    • 集群具备故障转移能⼒

    • 尝试着将 Replica 设置成 2 和 3, 查看集群的状况

    再增加⼀个数据节点

    image.png
    • 集群具备故障转移能⼒

    • Master 节点会决定分⽚分 配到哪个节点

    • 通过增加节点,提⾼集群 的计算能⼒

    故障转移

    image.png
    • 3 个节点共同组成。包含了 1 个索引,索引设 置了 3 个 Primary Shard 和 1 个 Replica

    • 节点 1 是 Master 节点,节点意外出现故障。集 群重新选举 Master 节点

    • Node 3 上的 R0 提升成 P0,集群变⻩

    • R0 和 R1 分配,集群变绿

    集群健康状态

    GET _cluster/health
    
    res:
    {
      "cluster_name" : "geektime",
      "status" : "green",
      "timed_out" : false,
      "number_of_nodes" : 2,
      "number_of_data_nodes" : 2,
      "active_primary_shards" : 7,
      "active_shards" : 14,
      "relocating_shards" : 0,
      "initializing_shards" : 0,
      "unassigned_shards" : 0,
      "delayed_unassigned_shards" : 0,
      "number_of_pending_tasks" : 0,
      "number_of_in_flight_fetch" : 0,
      "task_max_waiting_in_queue_millis" : 0,
      "active_shards_percent_as_number" : 100.0
    }
    
    
    • Green:健康状态,所有的主分⽚和副本分⽚都可⽤

    • Yellow:亚健康,所有的主分⽚可⽤,部分副本分⽚不可⽤

    • Red:不健康状态,部分主分⽚不可⽤

    Demo

    • 启动⼀个节点,3 个 Primary shard,⼀个 Replica,集群⻩⾊,因为⽆法分配 Replica

    • 启动三个节点,1 个索引上包含 3 个 Primary Shard,⼀个 Replica

    • 关闭 Node 1(Master)

    • 查看 Master Node 重新选举

    • 集群变⻩,然后重新分配

    本节知识点回顾

    • 主分⽚,副本分⽚的作⽤

      • 主分⽚的分⽚数,设置后不能修改,除⾮重新索引数据

      • 副本分⽚可以随时修改

    • 集群的故障转移

      • 需要集群具备故障转移的能⼒,必须将索引的副本分⽚数设置为 1,否则,⼀点有节点就是,就会造成数据 丢失

    相关文章

      网友评论

          本文标题:5.2-分片与集群的故障转移

          本文链接:https://www.haomeiwen.com/subject/wddmphtx.html