zoukankan      html  css  js  c++  java
  • ElasticSearch节点类型描述

    主节点

      主节点的职责主要是和集群操作相关的内容,如常见的删除索引,跟踪哪些节点是集群的一部分,并决定哪些分片分配给相关的节点。稳定的主节点对集群的健康非常重要。

      默认情况下每一个节点都有可能成为主节点。如果没有自己指定主节点的话,node.master:true ,node.data: false ,默认先启动的那个为主节点。索引数据和搜索数据等操作会占用大量的cpu资源,所以为了保证一个集群的稳定性,分离主节点和数据节点是一个比较好的选择。  

      

      为了防止数据丢失,配置discovery.zen.minimum_master_nodes设置是至关重要的(默认 为1),每个主节点应该知道形成一个集群的最小数量的主节点的数量。设置这个值的原则是:(master_eligible_nodes/2)+1.这个参数也可以动态设置:

     PUT _cluster/settings{ 
        "transisent":{
            "discovery.zen.minimum_master_nodes":2
        } 
    }    

    数据节点

       数据节点主要是存储索引数据的节点,主要对文档进行增删改查操作。数据节点对cpu,内存,io要求较高,在优化的时候需要监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节点,数据节点的配置为   node.master: false , node.data: true。

    客户端节点

      客户端节点就是当 node.master: false   node.data: fasle的时候,该节点只能处理路由请求,处理搜索,分发索引等操作,从本质上来说该客户端的点表现为智能负载均衡器,这在一个比较大的集群中是非常有用的,它协调主节点和数据节点,可以得到集群的状态,根据集群的状态可以直接路由请求。

      注意:

      添加太多的客户端节点对集群来说是一种负担,因为主节点必须等待每一个节点集群状态的更新确认,客户端的节点作用不应该被夸大,数据节点也可以起到类似的作用。

    路由

      路由就是确定文档到具体哪个分配的过程

      一个文档,在索引的时候会被存储在单独一个分片上,如何路由,ES根据一个简单的算法决定:shard=hash(routing)%number_of_primary_shards

       routing值是一个任意字符串,他默认是_id但也可以自定义。这个routing字符串通过哈希函数生成一个数字,然后除以主切片的数量得到一个余数(remainder),余数的范围永远是0到number_of_primary_shards-1,这个数字就是特定文档所在的分片。

      这也解释了为什么主分片的数量只能在创建索引时定义且不能修改,如果主分片的数量在未来改变了,所有先前的路由值就失效了,文档也就永远找不到了。

  • 相关阅读:
    Oracle开发常用函数与存储过程
    winform 窗体传值
    asp.net中的窗口弹出实现,包括分支窗口 . ASP.NET返回上一页面实现方法总结 .
    android语音识别和合成第三方 .
    百度拾取坐标系统 .
    过滤非法字符和发送邮件
    过滤字符串的Html标记 c#函数 .
    asp.net ListBox 移除操作的思路
    [POI2008]MAF-Mafia
    [BJOI2019]删数
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/9381247.html
Copyright © 2011-2022 走看看