zoukankan      html  css  js  c++  java
  • 【ElasticSearch】ElasticSearch集群扫盲

    Cluster 集群

      ⼀个 Elasticsearch 集群由⼀个或多个节点(Node)组成,每个集群都有⼀个共同的集群名称作为标识。
     

    Node节点

      ⼀个 Elasticsearch 实例即⼀个 Node,⼀台机器可以有多个实例,正常使⽤下每个实例应该

      会部署在不同的机器上。Elasticsearch 的配置⽂件中可以通过 node.masternode.data 来设置节点类型。

      node.master:表示节点是否具有成为主节点的资格

              true代表的是有资格竞选主节点

              false代表的是没有资格竞选主节点

      node.data:   表示节点是否存储数据

     

    Node节点组合

      主节点+数据节点(master+data)
        节点即有成为主节点的资格,⼜存储数据
    node.master: true
    node.data: true
      数据节点(data)
        节点没有成为主节点的资格,不参与选举,只会存储数据
    node.master: false
    node.data: true

      客户端节点(client)

        不会成为主节点,也不会存储数据,主要是针对海量请求的时候可以进⾏负载均衡

    node.master: false
    node.data: false

    分片

      每个索引有⼀个或多个分⽚,每个分⽚存储不同的数据。分⽚可分为主分⽚( primaryshard)和复制分⽚(replica shard),复制分⽚是主分⽚的拷⻉。默认每个主分⽚有⼀个复制分⽚,⼀个索引的复制分⽚的数量可以动态地调整,复制分⽚从不与它的主分⽚在同⼀个节点上(避免单点故障)。

    1.分⽚(shard):因为ES是个分布式的搜索引擎, 所以索引通常都会分解成不同部分, ⽽这些分布在不同节点的数据就是分⽚. ES⾃动管理和组织分⽚, 并在必要的时候对分⽚数据进⾏再平衡分配, 所以⽤户基本上不⽤担⼼分⽚的处理细节。

    2.副本(replica):ES默认为⼀个索引创建1个主分⽚, 并分别为其创建⼀个副本分⽚. 也就是说每个索引都由1个主分⽚成本, ⽽每个主分⽚都相应的有⼀个copy.

    3.Elastic search7.x之后,如果不指定索引分⽚,默认会创建1个主分⽚和⼀个副分⽚,⽽7.x版本之前的⽐如6.x版本,默认是5个主分⽚

    索引分⽚分配

    分⽚分配到哪个节点是由ES⾃动管理的,如果某个节点挂了,那分⽚⼜会重新分配到别的节点上。在单机中,节点没有副分⽚,因为只有⼀个节点没必要⽣成副分⽚,⼀个节点挂点,副分⽚也会挂掉,完全是单故障,没有存在的意义(主分片和副分片不在一台机器上,因此单节点分配副分片无意义);

     

    在集群中,同个分⽚它的主分⽚不会和它的副分⽚在同⼀个节点上,因为主分⽚和副分⽚在同个节点,节点挂了,副分⽚和主分机⼀样是挂了,不要把所有的鸡蛋都放在同个篮⼦⾥。

    可以⼿动移动分⽚,⽐如把某个分⽚移动从节点1移动到节点2。创建索引时指定的主分⽚数以后是⽆法修改的,所以主分⽚数的数量要根据项⽬决定,如果真的要增加主分⽚只能重建索引了。副分⽚数以后是可以修改的。

  • 相关阅读:
    iPhone页面的常用调试方法
    前端代码相关规范
    使用BEM命名规范来组织CSS代码
    安卓微信页面的调试
    前端调试的那些手段
    Webpack打包构建太慢了?试试几个方法
    [前端] 记录工作中遇到的各种问题(Bug,总结,记录)
    jqPlot图表插件学习之饼状图和环状图
    jqPlot图表插件学习之阴阳烛图
    jqPlot图表插件学习之数据节点高亮和光标提示
  • 原文地址:https://www.cnblogs.com/july-sunny/p/14318418.html
Copyright © 2011-2022 走看看