• ES 架构原理


    ES 架构原理


    一、简介

    Elasticsearch是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch基于Lucene开发,现在是使用最广的开源搜索引擎之一。Elasticsearch可以应用于在/离线日志流水、用户标签画像、数据库二级缓存、安全风控行为数据、图数据库索引、监控数据、Wiki文档检索等应用场景。


    二、架构

    Elasticsearch 架构原理和网易云NES 最佳实践— langrx

     

    master node:负责 es 集群的节点发现和元数据管理

    master-eligible node:有资格竞选 Master 的节点,一般奇数个

    data node:存储数据

    coordinating node:复制处理客户端请求的协调节点

    ingest node:对索引文档做预处理工作的节点

     

    shard:数据以shard为单位保存到data node中

    primary/replica shard:每个shard可配置一个或多个replica 副本,primary shard会把请求复制到replica shard上

     

    index:存储数据的基本单位,一个索引相当于一个库

    type:每个index有一个或多个type,一个type相当于一张表;mapping相当于表结构定义

    document:往一个index的一个type添加的一行数据称为document,每个document有多个field,每个field代表document的一个字段值


    三、读写原理

    es写入数据的过程

    1. 客户端选择一个node发送请求过去,这个node就是coordinating node (协调节点)

    2. coordinating node,对document进行路由,将请求转发给对应的node

    3. 实际上的node上的primary shard处理请求,然后将数据同步到replica node

    4. coordinating node,如果发现primary node和所有的replica node都搞定之后,就会返回请求到客户端

    es读数据过程

    查询,GET某一条的数据,写入某个document,这个document会自动给你分配一个全局的唯一ID,同时跟住这个ID进行hash路由到对应的primary shard上面去,当然也可以手动的设置ID

    1. 客户端发送任何一个请求到任意一个node,成为coordinate node

    2. coordinate node 对document进行路由,将请求转发到对应的node,此时会使用round-robin随机轮训算法,在primary shard 以及所有的replica中随机选择一个,让读请求负载均衡,

    3. 接受请求的node,返回document给coordinate note

    4. coordinate node返回给客户端

    es搜索数据过程

    1. 客户端发送一个请求给coordinate node

    2. 协调节点将搜索的请求转发给所有的shard对应的primary shard 或replica shard

    3. query phase:每一个shard 将自己搜索的结果(其实也就是一些唯一标识),返回给协调节点,有协调节点进行数据的合并,排序,分页等操作,产出最后的结果

    4. fetch phase ,接着由协调节点,根据唯一标识去各个节点进行拉去数据,最总返回给客户端


    参考

    https://mp.weixin.qq.com/s/0LU1cK9_fmzNUBRa3V5rdg

    https://niceaz.com/2018/12/09/elasticsearch-architecture/

    https://segmentfault.com/a/1190000015256970

  • 相关阅读:
    金思维仪器设备管理系统
    一道趣味数学题(二)
    三个和尚没水喝
    VBA从人民银行网站获取5个币种的历史汇率信息
    亿图图示专家 专业流程图,网络拓扑图,组织结构图设计软件
    Safari 近乎完美!闪电侠苹果Safari 4评测
    身体器官工作表一览,别熬夜
    Windows 7(32位)简体中文旗舰版OEM光盘
    金思维仪器设备管理系统产品上线啦
    VBA代码控制DTPicker控件的下拉日期表显示
  • 原文地址:https://www.cnblogs.com/GO-NO-1/p/13353993.html
Copyright © 2020-2023  润新知