源码
少加点香菜
座中泣下谁最多 江州司马青衫湿
展开
-
【Elasticsearch源码】节点的启动和关闭流程分析
1 Node的启动流程节点的启动整体流程如下所示:2 启动过程分析启动入口: 通过启动脚本bin/elasticsearch启动ES,在distribution模块中的/src/bin目录下面,脚本先载入了jvm配置文件jvm.options。最后启动org.elasticsearch.bootstrap.Elasticsearch这个主类中的main方法。 exec \ #执...原创 2020-01-22 17:31:02 · 9054 阅读 · 0 评论 -
【Elasticsearch源码】CCR源码分析(二)
接上一篇:【Elasticsearch源码】CCR源码分析(一)。sendShardChangesRequest方法最终进入到ShardChangesAction.TransportAction#shardOperation,跟据上面的read request,从Translog中获取该shard的seq_no范围内的所有Operation,返回最新的shard需要的Operation。 ...原创 2020-01-21 19:54:15 · 8616 阅读 · 0 评论 -
【Elasticsearch源码】CCR源码分析(一)
1 CCR的基本概念什么是CCR?CCR( cross-cluster replication):跨集群复制是ES 6.5发布的一个新的特性:可以将两个集群中的数据进行远程复制。集群复制类似于数据订阅的方式,一个集群的数据可以被多个集群订阅,也就是可以被复制到多个集群上面去。CCR 有两个角色,一个是 Leader,表示数据的源头,另外一个Follower,表示数据的订阅方,得到的是数...原创 2020-01-21 19:53:25 · 12151 阅读 · 0 评论 -
【Elasticsearch源码】-7.x源码编译
要学习源码之前,肯定要进行Elasticsearch源码的编译:前期准备首先要下载源码:https://github.com/elastic/elasticsearch/releases,以最新的7.1版本为例,下载源码包:安装JDK和Gradle:JDK需要jdk12以上,Gradle5.2.1,我安装了JDK12和Gradle 5.2.1:JDK和Gradle安装方法自行百度...原创 2020-01-15 15:15:27 · 6361 阅读 · 6 评论 -
【Elasticsearch源码】查询源码分析(二)
接上一篇:【Elasticsearch源码】查询源码分析(一)。上篇讲到请求通过遍历每个shard发送请求,执行executePhaseOnShard方法,转发请求的同时定义了一个Listener,用于监听处理结果。 private void performPhaseOnShard(final int shardIndex, final SearchShardIterator sha...原创 2020-01-15 10:17:55 · 9733 阅读 · 0 评论 -
【Elasticsearch源码】查询源码分析(一)
1 前言前言分析过ES的写入流程源码,详情见【Elasticsearch源码】写入源码分析。Elasticsearch(ES)的查询接口具有分布式的数据检索、聚合分析能力,数据检索能力用于支持全文检索、日志分析等场景,如Github平台上的代码搜索、基于ES的各类日志分析服务等;聚合分析能力用于支持指标分析、APM等场景,如监控场景、应用的日活/留存分析等。本文基于6.7.1版本,主要分...原创 2020-01-14 19:23:04 · 11370 阅读 · 0 评论 -
【Elasticsearch源码】写入源码分析(四)
接上一篇:【Elasticsearch源码】写入源码分析(三)。前面讲到了一个checkpoint(检查点的概念),在每次写入数据过程都需要更新LocalCheckpoint(本地检查点)和GlobalCheckpoint(全局检查点)。3.3 更新checkpoint了解checkpoint之前,先来看下Primary Terms和Sequence Numbers:Primary...原创 2020-01-13 16:30:16 · 15355 阅读 · 1 评论 -
【Elasticsearch源码】写入源码分析(三)
接上一篇:【Elasticsearch源码】写入源码分析(二)。3.2.5 写主分片节点流程代码入口:TransportReplicationAction.PrimaryOperationTransportHandler#messageReceived,然后进入AsyncPrimaryAction#doRun方法。检查请求: 1.当前是否为主分片;2.allocationId是否是预期值;...原创 2020-01-11 17:56:24 · 9490 阅读 · 2 评论 -
【Elasticsearch源码】写入源码分析(二)
接上一篇:【Elasticsearch源码】写入源码分析(一)如果需要自动创建索引,则需要遍历bulk的所有index,然后检查index是否需要自动创建,对于不存在的index,则会加入到自动创建的集合中,然后会调用createIndex方法创建index。index的创建由master来把控,master会根据分片分配和均衡的算法来决定在哪些data node上创建index对应的shard...原创 2020-01-11 17:14:46 · 11658 阅读 · 0 评论 -
【Elasticsearch源码】写入源码分析(一)
1 前言Elasticsearch(ES)是一个基于Lucene的分布式存储和搜索分析系统,本文希望从源码的角度分析ES在保证数据的可靠性、实时性和一致性前提下,其写入的具体流程。写入也是整个ES系统里面,最主要的流程之一,便于更好的理解ES的内部原理和逻辑,关于ES数据存储结构请参考:【Elasticsearch】原理-Elasticsearch数据存储结构与写入流程。2 写入基本流程...原创 2020-01-11 16:33:51 · 12295 阅读 · 1 评论