jasper的技术小窝

关注DevOps、运维监控、Python、Golang、开源、大数据、web开发、互联网

elasticsearch源码分析之plugin的开发

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2230 次 | 发布:2016-06-19 9:47 p.m.

在Elasticsearch中,如果你能自定义的扩充Elasticsearch的功能,比如说你想扩展自己的api、分词器、界面、权限等等,这时候你需要开发Elasticsearch的plugin了,之前也提到了Elasticsearch利用了Guice来达到注入各个功能模块的目的,这就让自定义的plugin也可以很方便地注入到Elasticsearch中,在网上看到过几篇这这方面的介绍,但都是两三年前的版本了,最新的Elasticsearch怎么来做到自开发plugin呢,本文就来简单地介绍下。

阅读全文

elasticsearch源码分析之search模块(server端)

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 1877 次 | 发布:2016-04-04 10:34 p.m.

继续接着上一篇的来说啊,当client端将search的请求发送到某一个node之后,剩下的事情就是server端来处理了,具体包括哪些步骤呢?

阅读全文

elasticsearch源码分析之search模块(client端)

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2215 次 | 发布:2016-04-02 10:01 p.m.

最近略为烦躁,也没静下心来搞搞技术,这样不行、不行;还是接着上一篇的来说,Elasticsearch提供了强大的查询搜素功能,那么搜素的结果是怎么出来的呢,看看源代码,来探一探里面的究竟吧。

阅读全文

elasticsearch源码分析之Rest模块

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 1869 次 | 发布:2016-03-06 10:58 p.m.

看了看上一篇博客的发表时间,发现自己已经有两个月没有更新过了,过年前后的确是有些忙。OK,抽空继续来Elasticsearch的源码研究之路,我们来开启一个全新的部分,关于Elasticsearch的restful api的,本篇文章我会首先大体介绍一下,restful模块的构建,后面会有博文来具体介绍几个api的处理过程。

阅读全文

elasticsearch源码分析之Allocation模块

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2464 次 | 发布:2016-01-02 9:50 p.m.

对于shard分配到哪个node,之前也提到过了,是由ES自己控制或是由routing来控制,但是在一些情况下会有shard的分配动作,ES中将之称之为allocate,下面我们就来探讨一下allocate相关的知识。

阅读全文

elasticsearch源码分析之Gateway模块

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 1960 次 | 发布:2015-12-21 10:33 p.m.

周末看了两场NBA之后,又要来开始继续研究Elasticsearch的源代码,今天我们来一起看看Gateway模块,Gateway模块用于存储es集群的MetaData。MetaData每一次改变(比如增加删除索引等),都要通过Gateway模块进行持久化。当集群第一次启动的时候,这些信息就会从Gateway模块中读出并应用。

阅读全文

elasticsearch源码分析之ThreadPool模块

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 3074 次 | 发布:2015-12-12 9:31 p.m.

在ES中所有的action都是由一些线程去执行的(额,感觉说了一句废话),当然多线程的话就需要线程池来控制,其线程的实现与控制就是有threadpool模块来决定,其实之前的很多模块里面都有用到threadpool,那么本文就来详细地说一说ES的线程池模块——ThreadPool。

阅读全文

如何在IDE中运行elasticsearch

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2494 次 | 发布:2015-12-06 11:56 p.m.

现在插播一篇,之前还一直没有源码跑过Elasticsearch,如果想调试Elasticsearch,或是对它做一些修改,那么就需要在IDE中将之在本地跑起来,不像直接下载的包,对于源码的运行还需要一些额外的注意。

阅读全文

elasticsearch源码分析之Merge

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2618 次 | 发布:2015-12-06 10:06 p.m.

上一篇中说道数据被flush到磁盘之后,其实是一个一个小的segment,这样的segment每秒都在产生,大量的segment会占用大量的资源,而且每次search的时候会去遍历所有的segment,从而导致性能低下,ES为了优化,在后面运行任务将这种小的segment归并为较大的,这个过程就叫做“merge”,这篇文章就来探究探究merge是怎么工作的。

阅读全文

elasticsearch源码分析之索引过程(二)

作者:jasper | 分类:ElasticSearch | 标签:   | 阅读 2281 次 | 发布:2015-12-05 6:06 p.m.

接着上一篇的,在写入了buffer和translog之后,数据仍然不能被搜到,必须还得执行一个操作---refresh,而将segment刷到磁盘还需要一个操作---flush;为了保证数据的一致性,还需要一个之前提到的translog,那么我们这篇就来研究他们是怎么工作的。

阅读全文

其他分类: