zoukankan      html  css  js  c++  java
  • ES环境安装、健康值检查及CRUD

    一、ES横向扩容方案

    横向扩容方案一:

    横向扩容方案二:

    二、ES容错机制

    1、容错:各种情况下都能保证工作正常运行

         在局部出错异常的情况下,保证服务正常运行并且有自行恢复能力

    2、ES的角色

      ① Master:主节点,每个集群都有且只有一个

        尽量避免Master节点 node.data = true

      ②voting投票节点

        Node.voting_only = true

        仅投票节点,即使配置了data.master = true,也不会参选, 但是仍然可以作为数据节点

      ③coordinating:协调节点

        每一个节点都隐式的是一个协调节点

        如果同时设置了data.master = false和data.data=false,那么此节点将成为仅协调节点

      ④Master-eligible node(候选节点):一般情况下在集群中候选节点的数量和投票节点相同

      ⑤ Data node(数据节点):进行数据交互工作

    3、容错图解

    第一步:Master选举

      ①脑裂:可能会产生多个Master节点

      ② 解决:discovery.zen.minimum_master_nodes=N/2+1

    第二步:Replica容错 

      新的(或者原有)Master节点会将丢失的Primary对应的某个副本提升为Primary

    第三步:重启故障机

    第四步:数据恢复

      Master会将宕机期间丢失的数据同步到重启机器对应的分片上去

      如上图横向扩容方案二所示,假设P0所在机器宕机,则其他机器中P0对应的副本分片(假设为R2-0)升级为主分片承担写操作(副本分片只能读,主分片既能读又能写)

      在R2-0副本分片升级为主分片,故障机重启成功的这段时间内,会有新增的数据写到R2-0中,当宕机机器重启成功后,R2-0会把新增的数据拷贝到P0中

    4、脑裂

    如上图所示,假设集群中有两台机器,这两台机器位于不同机房,这时网络断开,es中一个节点发现没有了Master节点,会发起投票,将自己选为Master节点。一段时间后网络重连成功,就出现了两台Master节点,这就是脑裂。

    5、解决脑裂

    如果候选节点(node.master = true)的节点有偶数个,那么es会将其中一个节点排除在投票节点之外

    三、ES配置文件

    ①设置主节点:node.master:true(在主节点宕机后有竞选主节点的资格)

    ②进行数据存储:node.data:true

    一共会出现4种组合:

    1、①②都为true:既有主节点的竞选资格又有数据存储功能

    2、①为false②为true:只存储数据

    3、①为true②为false:只担当主节点

    4、①②都为false:协调节点,做负载均衡(转发),请求过来后转发到下一节点

    注意:一般来说master节点不用做数据存储节点

       在学习时尽量使用默认配置,如果修改默认配置,es会认为你从开发模式切换到生产模式

    四、集群健康值检查

    1、Green:所有PShard和RShard都处于活跃状态

    2、Yellow:当前集群中至少有一个RShard不可用

    3、Red:至少有一个PShard不可用

    五、安装

    1、es安装

    2、node 安装

    3、kibana安装

    六、CRUD

    1、创建索引:PUT /索引?Pretty

    2、查询索引:GET _cat/索引?v

    3、删除索引:DELETE /索引/Pretty

    4、插入数据:

      PUT /索引/_doc/id

      {

        Json数据

      }

    5、更新数据

      ① 全量替换:按照插入时的数据格式编辑并执行,在需要修改的位置修改数据

      ② 指定字段更新

        POST /索引/_doc/1/_update

        {

          "doc":{

            "price":2999

            }

        }

    6、删除数据: DELETE /index/type/id

    7、查询数据:GET /索引/_search

    8、条件查询:GET /索引/_search?q=price:2999&sort=price:asc

  • 相关阅读:
    Java抓取网页数据(原网页+Javascript返回数据)
    Android Bundle类
    【设计模式】命令模式
    oracle触发器实例
    各大名企笔试及面经大全(程序猿必读)
    数据库索引的作用和长处缺点
    一个int类型究竟占多少个字节
    如何遮挡电影英汉字幕
    如何重启mysql服务
    修改mysql默认字符集的方法
  • 原文地址:https://www.cnblogs.com/lyc-code/p/13647398.html
Copyright © 2011-2022 走看看