Elasticsearch架构简介

ElasticSearch核心概念

ElasticSearch核心概念

Cluster—集群

一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能,一个集群由一个名字唯一的标识。

Node—节点

一个节点是集群中的一个服务器,作为集群的一部分,它存储数据,参与集群的索引和搜索功能,和集群类似,一个节点也是由一个名字唯一的标识。

Index—索引

索引包含的是一大推相似结构的文档数据,例如我们的商品索引,订单索引等,同集群和节点类型,一个索引也是由一个名字唯一的标识。

Type—类型

每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,如果不指定type的名称,默认的type会设定为_doc

Document—文档

一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档,某一个产品的一个文档,文档以JSON格式来标识和存储

Field—字段

相当于是数据表的字段,对文档数据根据不同属性进行的分类标识,在ElasticSearch中索引都是基于Field。

mapping—映射

mapping是处理数据的方式和规则方面做一些限制,如某个字段的数据类型、默认值、分析器、是否被索引等等,这些都是映射里面可以设置的,这些设置决定了Field的检索方式。

shard—分片

单台机器无法存储大量数据,es可以将一个Index中的数据切分为多个shard,分布在多台服务器上存储。有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。

replication—副本

任何服务器随时可能故障或宕机,此时shard可能就会丢失,因此可以为每个shard创建多个副本。副本可以在shard故障时提供备用服务,保证数据不丢失,多个副本还可以提升搜索操作的吞吐量和性能。

ElasticSearch架构

ElasticSearch架构

Gateway

Gateway是ElasticSearch用来存储索引的文件系统,支持多种类型,默认使用的是文件系统

Distributed Lucene Directory

它是一个分布式的lucene框架,位于Gateway的上层,内部包含Lucene-core,

Index Module

索引模块,维护索引的存储,包括分片和副本的机制

Search Module

搜索模块,主要功能是解析RESTful接口查询条件并执行查询得到结果

Mapping

映射解析模块,维护一个文档以及它所包含的属性是如何存储和索引的。

Discovery

它是ES的节点发现模块,不同机器上的ES节点要组成集群需要进行消息通信,集群内部需要选举master节点,这些工作都是由Discovery模块完成。支持多种发现机制,如 Zen 、EC2、gce、Azure

Scripting

Scripting用来支持在查询语句中插入javascript、python等脚本语言,scripting模块负责解析这些脚本

3rd Plugins

第三方插件系统,用户可以根据ElasticSearch插件规范开发自己的插件

Transport

它是ES的传输模块,支持多种传输协议,如 Thrift、memecached、http,默认使用http

JMX

JMX是java的管理框架,用来管理ES应用。

RESTful style API

提供给用户的接口,可以通过RESTful接口和ES集群进行交互。

参考资料

分类

开发
    --go (9)
    --java (5)
    --php (11)
    --mysql (9)
    --javascript (3)
    --html (1)
    --算法 (6)
架构
    --理论 (9)
    --网络 (3)
    --服务器 (2)
    --消息队列 (3)
    --容器 (5)
    --监控 (1)
    --搜索引擎 (3)
    --大数据 (0)
    --测试 (1)
系统
    --linux (10)
    --mac (2)
    --windows (1)
足球
    --世界杯 (60)
    --欧洲杯 (28)
    --文迷 (3)
大学时光
    --校园生活 (96)
    --假期生活 (17)
    --广院杯那些事 (14)
    --北京奥运 (6)
    --胡思乱写 (17)


最近发布

零拷贝技术介绍

服务网格技术简介

C语言标准和标准库简介

Kubernetes简介及环境搭建

Go语言开发的顶级项目


归档

2006 (109)
2007 (40)
2008 (47)
2009 (10)
2010 (6)
2012 (10)
2013 (14)
2014 (27)
2015 (15)
2016 (6)
2017 (8)
2018 (11)
2019 (17)
2020 (5)