复习下elasticSearch

elasticSearch:

一个分布式全文搜索数据引擎,底层基于Lucene(倒排索引)。

特点:速度快,存储数据量大。

主要的结构:index->type->mapping->document->field

index:类似于数据库
type:类似于表,多个type的名字应该差不多
mapping:表结构,里面一些type的信息
document:相当于表数据一行
field:相当于字段的值

es的分布式原理:核心就是分片和分片副本

es可以将你存储的数据进行分片,每一个节点中保存着不同的分片和其他分片副本。如果有写入操作,es会同步数据来保持一致性(AP)。

es的写数据原理:

通过协调节点,reflish,flush,translog,merger

用户写入一条数据是,随机选择一个节点作为协调节点,这个协调节点对数据进行hash处理,匹配到这条数据对应的index节点分片中存储,然后该分片所在的节点同步数据到该分片副本中,最后协调节点返回一个响应。


image.png

以上是整个写入的基本流程,那么节点里面的分片是怎么写入的呢?
其实是先存入到内存中,同时写入到translog中标记,通过reflish,刷到磁盘中(segment file)。


image.png

你可能感兴趣的:(复习下elasticSearch)