Elasticsearch基本概念与核心原理

本文基于Elasticsearch7.x版本.

什么是Elasticsearch

Elasticsearch是一个分布式的搜索引擎和数据分析引擎, 提供了全文检索, 同义词处理, 相关度排名, 复杂数据分析, 海量数据的近实时处理等功能, Elasticsearch作为传统数据库的一个补充, 提供了很多数据库所不不能提供的功能.

Elasticsearch的核心概念

Elasticsearch的概念和其他分布式中间件差不多, 可以对照着理解.(实际上Redis, Kafka, Zookeeper, Elasticsearch等这些中间件里的分布式概念殊途同归, 可以相互对照一下)

(1) Near Realtime(NRT)

近实时. 有两个意思, 一个是从写入数据到数据可以被搜索到有一个小延迟(1秒), 另一个是基于ES执行搜索和分析可以达到秒级.

(2) Cluster

集群. 包含多个节点, 每个节点属于哪个集群是通过一个配置(cluster.name)来决定的.

(3) Node

节点. 一个ES进程就是一个节点, 当启动多个ES进程后就组成了一个ES集群, 当然一个节点也可以组成一个ES集群.

(4) Index

索引. 一类具有相似结构的文档数据的集合,比如用户信息索引, 订单索引, 商品索引等.

(5) Type

类型. 每个索引里都可以有一个或多个type, type是index中的一个逻辑数据分类, 一个type下的document, 都有相同的field.

注意: Elasticsearch7.x以后的版本type都默认为_doc, 不要再手动指定了.

(6) Document和field

文档和属性. document是ES中的最小数据单元, 一个document可以是一条用户数据, 一条商品数据, 一条订单数据, 通常用JSON数据结构表示. 每个index下的type中, 都可以去存储多个document. 一个document里面有多个field, 每个field就是一个数据字段.

(7) Shard

分片. 单台机器无法存储大量数据, ES可以将一个索引中的数据切分为多个shard, 分布在多台服务器上存储. 有了shard就可以横向扩展(增加服务器), 存储更多数据, 让搜索和分析等操作分布到多台服务器上去执行, 提升吞吐量和性能. 每个shard都是一个lucene index.

(8) Replica

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

Elasticsearch分布式特性

基本概念

(1) Coordinating Node

处理请求的节点, 叫 Coordinating Node. 具体功能是路由请求到正确的节点, 例如创建/删除索引的请求, 需要路由到 Master 节点. 所有节点默认都是Coordinating Node.

创建和删除索引需要将请求发送给Master节点, 搜索和聚合Coordinating节点自己处理.

(2) Data Node

可以保存数据的节点, 叫做 Data Node. 节点启动后, 默认就是数据节点. 可以设置 node.data: false 禁止.

(3) Master Node

  • 负责索引的创建与删除.
  • 决定分片被分配到哪个节点.
  • 负责主分片与副本分片的身份切换.
  • 维护并且更新 Cluster State.

(4) Master Eligible Nodes

可以选举为Master节点的候选节点. 默认情况下, 所有节点都是Master Eligible Nodes, 可以设置 node.master: false 禁止.

(5) Cluster State

集群状态信息, 维护了⼀个集群中必要的信息.

  • 所有的节点信息.
  • 所有的索引及其相关的 Mapping 与 Setting 信息.
  • 分片的路由信息.

每个节点上都保存了集群的状态信息, 但是只有 Master 节点才能修改集群的状态信息, 并负责同步给其他节点. 因为任意节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值