elasticsearch 中的基本概念和基本的工作流程

tech2022-10-23  109

Elasticsearch

解决了分布式(搜索、索引),高性能(近实时),高可用(海量数据,堆机器)的检索服务,可以服务数百台机器处理大数据

一次简单的搜索流程

索引-> 分析 -> 检索 索引 : 将收集到的数据建立倒排索引并存储分析 : 将用户输入的 keyword 分解为索引服务可识别的词缀检索 : 将对应 token 与索引库中的倒排索引进行对比,并返回检索结果。

es 数据分布式

数据的存储访问在多个节点(node)的多个分片(shard)上。es 自动将分片数据分布在es集群不同的节点上,以实现数据的分布(同分片的主从分片不能在同节点上,防止节点故障数据丢失)

es基本概念

Inverted Index,相当于MySQL中的database, document集合,index数据可以分为多个 shard 分片

node ,一个 es实例就是一个node, 1个node不等同于1台服务器。一个node下拥有多个 index

shard

相当于一个索引的数据用多个杯子(shard)来装, 这样可以将数据分布在多个node上,完成数据的分布式部署,每个分片都是一个 lucene index(全文搜索引擎)的实例primary shard : 相当于主库,可读可写replica shard : 数据备份,相当于从库读,提高读吞吐量。当主分片失效时,同坐自动的election, replica可以成为 primary

index-mysql_database; type-mysql_table; document-mysql_row; field-mysql_field

节点的分布与一致性

数据通过切片分布在多个节点上,在 es 中每个节点都可以完成用户的检索请求,安装不同的服务功能划分为3类职责:master/data/client

masterNode 创建/删除/分配切片dataNode 数据查询/数据写入clientNode 纯转发clientNode 可以增加集群的访问吞吐量,但是 masterNode 掌握了集群中其它节点的数据元信息(及分片的分布情况)

es 通过 discovery 模块来完成新加入节点的发现和已有的节点宕机发现,新节点加入前已通过配置确认新节点的身份。宕机节点通过集群中其它节点的 unicast 机制来发现节点宕机情况,并自动剔除集权 同时 es 集群通过自动选举解决了集群首脑masterNode 宕机时服务不可用的问题

最新回复(0)