美文网首页
Elasticsearch集群的一些重要配置

Elasticsearch集群的一些重要配置

作者: ifeelok0319 | 来源:发表于2017-06-27 18:38 被阅读314次

    配置高性能Elasticsearch集群的9个小贴士

    • 规划索引、分片 以及集群增长情况

    • 在配置前了解集群的拓扑结构
      通过独立的master节点和data节点来运行ES,为索引和搜索使用单独的ES client节点,这将减轻data节点的一些负载。

      Master node: node.master:true node.data:false
      
      Data node: node.master:false node.data:true
      
      Client node: node.master:false node.data:false
      
    • 内存设置

    ES的mlockall属性允许ES节点不交换内存

    ```
    bootstrap.mlockall: true
    ```
    
    • discovery.zen属性控制ElasticSearch的发现协议

    从2.0开始往后服务发现就仅支持单播了,只需要找到集群中的一个节点就能将该节点加入集群

    • 当心Delete _all
      设置不允许删除索引时的模糊匹配
      action.destructive_requires_name: true

    • 使用doc_values(官方文档里面没看到过)

    • 集群配额类属性设置
      cluster.routing.allocation.cluster_concurrent_rebalance: 设置允许并发再平衡的分片数量。默认值是2,表示任意时刻只允许同时移动2个分片。最好将该属性设置得较小,以便压制分片再平衡,使其不影响索引。
      cluster.routing.allocation.disk.threshold_enabled: 默认值true。表示在分配分片到一个节点时将会把可用的磁盘空间算入配额内。

    • Recovery属性允许快速重启(这个配置比较复杂)

    • 线程池属性防止数据丢失(这个可以以后再研究)

    发现策略

    • 主要的API(索引、删除、搜索)不需要和主节点通信,主节点的任务是维护整个集群的状态,如果节点加入或者离开集群,主节点也要重新分配分片。集群状态改变,新状态也会被其他节点获知(具体的方式通过实际的发现机制)

    zen 方式发现

    • 单播发现,由其他的一些模块集成,例如,节点间所有的通信使用tansport模块。
    • zen discovery分成了几个子模块
      • ping: 节点通过这个过程找到其他节点
      • unicast:
      discovery.zen.ping.unicast.hosts
      discovery.zen.ping.unicast.hosts.resolve_timeout
      

    主节点竞选

    在ping过程中,一个主节点会被自动地选举或者加入。discovery.zen.ping_timeout设置时长,默认3sdiscovery.zen.join_timeout,节点加入时发送给主节点的request时长,默认是3s*20

    在竞选主节点时,discovery.zen.master_election.ignore_non_master_pings值为true时,data node 或者client node 发送的ping将被忽略,默认值为false

    discovery.zen.minimum_master_nodes设置为master_eligible_nodes / 2) + 1。最好不要设置master_eligible_nodes(node.master: true)的个数为2,因为此时discovery.zen.minimum_master_nodes的值为2,任意一个主节点丢失将会造成集群不可用。

    故障检测

    • 主节点ping其他节点,看他们是否存活
    • 每一个节点ping主节点,报告它还存活或者需要竞选主节点
    discovery.zen.fd.ping_interval: 节点被ping的时间间隔,1s
    discovery.zen.fd.ping_timeout: 等待ping response的时间,默认30s
    discovery.zen.fd.ping_retries: timeout/fail 重ping的次数, 默认3
    

    相关文章

      网友评论

          本文标题:Elasticsearch集群的一些重要配置

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