美文网首页
ELASTICSEARCH FAILOVER

ELASTICSEARCH FAILOVER

作者: 转身一世铅华尽 | 来源:发表于2020-06-11 11:07 被阅读0次

    故障转移

    当一个ES集群中只有一个节点时,就会出现单点故障问题(没有备份冗余),我们只需要再启用一个节点就可以避免这个问题
    我们只需要按照单台部署的方式再启用一个ES,再配置文件中修改cluster.name和第一个ES节点相同(ES集群安装),启动ES,他就会自动加入到ES集群中.
    当节点加入到集群中时,会自动生成和主分片数对应的副分片数,一个主分片对应一个副分片,这样当集群中有某个节点出问题时,数据依旧能够正常运转。
    当第二个节点加入到集群后,3个 副本分片 将会分配到这个节点上——每个主分片对应一个副本分片。 这意味着当集群内任何一个节点出现问题时,我们的数据都完好无损。
    所有新近被索引的文档都将会保存在主分片上,然后被并行的复制到对应的副本分片上。这就保证了我们既可以从主分片又可以从副本分片上获得文档。
    cluster-health 现在展示的状态为 green ,这表示所有6个分片(包括3个主分片和3个副本分片)都在正常运行。

    {
        "cluster_name":"elasticsearch",
        "status":"green",
        "timed_out":false,
        "number_of_nodes":2,
        "number_of_data_nodes":2,
        "active_primary_shards":3,
        "active_shards":6,
        "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
    }
    

    我们的集群现在不仅仅是正常运行的,并且还处于 始终可用 的状态。

    水平扩容

    为了应对集群的负载压力,有时,我们需要对集群进行水平扩容,再向集群中添加一个节点
    具体的添加操作方法,参考ES集群安装,按相同的配置再启用一台ES节点就行了,配置相同的cluster.name和不同的节点名称就行了,这样,我们的集群就出现了三个节点
    这样集群为了均衡数据,会从节点一和节点二分别迁移一个分片去节点三,这样每个节点都有2个分片了。
    这样每个节点的硬件资源将被更少的分片所使用,每个分片的性能将有所提升。
    分片是一个功能完整的搜索引擎,它拥有使用一个节点上的所有资源的能力。 我们这个拥有6个分片(3个主分片和3个副本分片)的索引可以最大扩容到6个节点,每个节点上存在一个分片,并且每个分片拥有所在节点的全部资源。
    理论上来说, 目前我们拥有三个主分片,三个副本分片。如果需要扩容,目前只能扩容到6个节点,如果我们想要扩容到6个以上的话,我们可以提升我们的副本分片的数量。
    主分片的数目在索引创建时就已经确定了下来。实际上,这个数目定义了这个索引能够 存储 的最大数据量。(实际大小取决于你的数据、硬件和使用场景。) 但是,读操作——搜索和返回数据——可以同时被主分片 或 副本分片所处理,所以当你拥有越多的副本分片时,也将拥有越高的吞吐量。
    比如:

    PUT /INDEX/_settings
    {
       "number_of_replicas" : 2
    }
    

    这样,将分片数量提升至2,则相当于每个主分片对应2个副本分片,则总分片数量就为9个,这样就能扩容到6个以上的节点了,通过这样提升ES的性能
    但是如果不打算扩容,只是单独增加索引的分片的话,是不建议这么多的,因为ES中索引的分片是需要分配ES节点的资源的,如果分片过多,而资源还是原来的那些,则会导致性能出现下滑,但是如果副本分片变多的话,则提高了数据的冗余,这样的话,我们的数据出现丢失的可能性也更小了
    如果这个时候有一个节点突然掉线了(比如我们拥有三个节点),如果掉线的是主节点的话,剩下的两个节点会进行选举主节点,当其中一个节点获得超过50%的选票时,主节点选举完毕,主节点出现时会将掉线节点中分片的副本分片提升为主分片进行数据恢复,此时如果掉线节点恢复重新加入到集群中,则,会重新进行分配副本分片。如果掉线的不是主节点,这通过主节点进行同样的操作。

    相关文章

      网友评论

          本文标题:ELASTICSEARCH FAILOVER

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