Es知识整理
一、Es是如何实现分布式的
1.Es本身基于lucene,高度支持分布式的核心思想就在于,在多个服务器上启动多个Es进程实例,组建了一套Es集群。
2.其次,因为shard分片的应用,非常灵活的支持数据量横向扩展(只需要重建一个索引,多加shard,把数据迁进去)。再者说shard的数据其实是有多个备份,每个shard都会有一个primary shard,负责写数据,写入数据后,会将数据同步到其他的replica shard上。(ps : 主shard 和 复制shard 可以不在相同的服务器上,如果某个机器宕机了,别的机器上依然有数据备份)
3.Es集群会自动选举一个master节点, 负责一些管理工作(比如维护索引元数据、负责切换 primary shard 和 replica shard 身份等),如果master节点宕机了,会重新选举一个新的master。
4.非master节点宕机时,master节点会让宕机节点的primary shard 身份转移给其他节点。如果宕机节点修好了,那它也只能是replica shard了。(保证集群正常)。
二、Es 写数据操作
1.客户端随机选了一个节点1触发请求,该节点1成为 协调节点。
2.协调节点对这个写入的document进行路由,将数据发送给有primary shard的节点2。
3.节点2写数据,并将数据同步给所有的replica shard节点。
4.协调节点如果发现 primary shard 和 各 replica shard 都将数据搞定之后,响应客户端。
三、Es读数据操作
1.客户端随机选了一个节点1触发请求,该节点1成为 协调节点。
2.协调节点对请求过来的文档id进行hash路由,使用随机轮训算法(保证读数据负载均衡)从所有的primary shard 的node 和复制节点的node里挑一个节点2,将请求指给对应的节点2。
3.节点2将数据document 响应给协调节点1。
4.协调节点1 将数据响应给客户端。
四、Es搜索数据操作
1.客户端随机选了一个节点1触发请求,该节点1成为 协调节点。
2.协调节点将搜索的内容转发到所有的shard。
3.每个shard 将自己的搜索结果 其实也就是一些document_id。返回给协调节点1。协调节点进行合并、排序、分页等。
4.协调节点1根据每个shard发挥的document_id去各个节点上拉去实际的document数据,最终响应给客户端。
五、Es为什么快
首先要知道什么是倒排索引,引用大佬的图。

1.倒排索引就是关键词到文档id 多对多的一个映射关系。
着重注意两点:
a.倒排索引中的关键词词项本身就是有个升序排列的顺序的。
b.每个关键词在倒排所以里又直接对应着所有相关的document_id。
2.Es通过词项索引快速找到了倒排文件和trem。再通过倒排文件快速定位到具体的document。
Es知识整理的更多相关文章
- js事件(Event)知识整理
事件(Event)知识整理,本文由网上资料整理而来,需要的朋友可以参考下 鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover 之后如果光标继续在元素上移动,则不断触发mousemo ...
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- Kali Linux渗透基础知识整理(二)漏洞扫描
Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...
- wifi基础知识整理
转自 :http://blog.chinaunix.net/uid-9525959-id-3326047.html WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总 ...
- 数据库知识整理<一>
关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...
- 【转载】UML类图知识整理
原文:UML类图知识整理 UML类图 UML,进阶必备专业技能,看不懂UML就会看不懂那些优秀的资料. 这里简单整理 类之间的关系 泛化关系(generalization) 泛化(generalize ...
- Linux进程管理知识整理
Linux进程管理知识整理 1.进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些? TASK_RUNNING(可运行状态) ...
- js事件(Event)知识整理[转]
事件注册 平常我们绑定事件的时候用dom.onxxxx=function(){}的形式 这种方式是给元素的onxxxx属性赋值,只能绑定有一个处理句柄. 但很多时候我们需要绑定多个处理句柄到一个事件上 ...
- Spring Ioc知识整理
Ioc知识整理(一): IoC (Inversion of Control) 控制反转. 1.bean的别名 我们每个bean元素都有一个id属性,用于唯一标识实例化的一个类,其实name属性也可用来 ...
随机推荐
- UniCode 速查表
unicode速查表 0000–0FFF 1000–1FFF 2000–2FFF 3000–3FFF 4000–4FFF 5000–5FFF 6000–6FFF 7000–7FFF 8000–8FFF ...
- Django:使用django自带的登录模块登录后会默认登录到 /accounts/profile 下的问题
django settings中LOGIN_REDIRECT_URL默认重定向到/accounts/profile下,可通过配置修改
- mysql8.0 for windows环境配置
1.安装 zip压缩包解压后,需要设置环境变量. MYSQL_HOME = E:\mysql-8.0.16-winx64 在path中,增加变量%MYSQL_HOME%\bin 2.初始化 在安装根目 ...
- Linux CentOS7 VMware 相对和绝对路径、cd命令、mkdir/rmdir、rm命令——笔记
一. 相对和绝对路径 绝对路径是从/(也被称为根目录)开始的,比如/usr.cd /root/ pwd 注:判断用户当前所处的位置 相对路径是以 . 或 .. 开始的 二.cd命令 cd 是进入到当前 ...
- Linux CentOS7 VMware克隆、虚拟机之间互连——初学笔记
一.VMware克隆:选中我的第一个虚拟机,右键下拉菜单—管理—克隆. 弹出对话框,下一步根据提示: 完成克隆: 二.虚拟机互连: 配置第二虚拟机IP,使用:vi /etc/s ...
- 9.2.1 hadoop mapreduce任务输出的默认排序
任务的默认排序 MapTask和ReduceTask都会默认对数据按照key进行排序,不管逻辑上是否需要.默认是按照字典顺序排序,且实现该排序的方法是快速排序.但是map和reduce任务只能保证单个 ...
- Day10 - D - 矿场搭建 HYSBZ - 2730
煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖 ...
- Pyspider的基本使用 -- 入门
简介 一个国人编写的强大的网络爬虫系统并带有强大的WebUI 采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器 官方文档: ...
- Jquery实现功能---购物车
//需求,勾选选项时,总价格要跟着变,点击添加数量,总价格也要跟着变,全部要动态变化 //代码如下 <!DOCTYPE html> <html> <head> &l ...
- 怎样快速高效的定义Django的序列化器
1.使用Serializer方法自己创建一个序列化器 先写一个简单的例子 class BookInfoSerializer(serializers.Serializer): ""& ...