美文网首页
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-分片与集群的故障转移

    Primary Shard - 提升系统存储容量 分⽚是 Elasticsearch 分布式存储的基⽯主分⽚ / ...

  • Elasticsearch 分布式特性

    前言 本文的主要内容: 分布式介绍及cerebro 构建集群 副本与分片 集群状态与故障转移 文档分布式存储 脑裂...

  • 重新刷新你对Redis集群的理解

    Redis集群 Redis 集群通过 分片 来进行数据共享,并提供复制和故障转移功能。 1. 节点 1.1 节点的...

  • 【elasticsearch】23、分片与集群的故障转移

    primary shard - 提升系统的存储容量 分片是elasticsearch分布式存储的基石主分片 / 副...

  • Redis 集群

    1. 集群概述 Redis集群是Redis提供的分布式数据库方案,集群通过分片进行数据共享,提供复制和故障转移功能...

  • 08-redis集群

    redis集群是redis提供分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能 节点 集群有...

  • 故障转移集群的仲裁

    转载自我的博客《故障转移集群的仲裁 》 Windows服务器故障转移集群(WindowsServerFailove...

  • 仲裁盘的另一种用法:高可用集群故障转移

    转自:集群故障转移的仲裁 Windows服务器故障转移集群(Windows Server Failover Clu...

  • Redis之集群

    Redis集群是Redis提供分布式数据库方案,集群通过分片来进行数据库的共享,并提供复制和故障转移功能, 本文主...

  • 集群

    集群通过分片来进行数据共享,并提供复制和故障转移 节点 1.一个集群有多个节点 2.节点代表的是master或者s...

网友评论

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

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