(精华)ES架构图
2024-02-01 11:10:02 130 举报
ES(Elasticsearch)架构图主要包括以下几个部分:节点、集群、索引、类型和文档。节点是ES的基本运行单位,一个集群由多个节点组成,每个节点都可以存储数据并参与集群的负载均衡。索引是ES中用于存储数据的容器,每个索引包含多个类型,每个类型又包含多个文档。ES使用倒排索引的数据结构来提高搜索效率,支持全文搜索、聚合查询等功能。此外,ES还提供了分布式事务支持、安全认证、监控报警等高级功能,适用于各种规模的企业级应用。
作者其他创作
大纲/内容
merge
Shard 02 ReplicaIndex A
Shard 03 PrimaryIndex A
Server 03
Segment
Shard 01 PrimaryIndex A
Document
Shard 01 ReplicaIndex A
Lucene
Client
Shard
2、写操作日志(顺序写)
CommitPoint
默认每5s刷一次盘所以可能存在5s数据丢失的情况
sync
refresh(每秒或者Buffer满)创建、写入Segment并清空Buffer
Index A
filesystem cache(os cache)
每个 shard 就是一个 Lucene Index,包含多个 segment 文件,和一个 commit point 文件。commit point记录着这个Shard包含着哪些Segment文件
flush
操作系统决定落盘时间
Translog
write doc
Shard Primary
1、写入缓冲
ES
Server 01
Translog过大,需要清理,即flush具体条件:1、Translog大小达到阈值2、每30分钟具体步骤如下:1、执行refresh,将数据写入Segment2、强制将所有Segment数据刷盘3、创建一个提交点,记录这次提交对应的所有segment,写入 commit point 文件4、清空 Translog,因为 Segment 都已经踏实落地了,之前的 Translog 就不需要了
Shard 02 PrimaryIndex A
Buffer
ES集群整体架构1、ES 集群里面有多个 Server 节点,一个 ES Index 有多个 shard 分片,每个 shard 有多个副本2、其中有一个 primary 主副本,负责写入,其他副本为 replica,不能写,只能同步 primary 的数据,但可以处理读请求。3、ES 收到写请求后,会将请求路由到目标shard的primary 副本。
Segment文件过多,需要合并、清理,即mergeES有一个后台程序,执行merge操作,包含如下操作:1、将小的Segment文件合并到一个大的Segment文件2、修改commit point 的 segment 记录3、清理被删除的数据es 接收到删数据请求时,不会真的到 segment 中把数据删了,而是把要删除的数据写到 '.del' 文件中,在读操作时,会根据这个文件进行过滤。
物理磁盘
Shard 03 ReplicaIndex A
ok
一个索引(Index)可以拆分成多个Shard
ES Cluster
每个Segment存储着一个个Document
合并、清理
Server 02
修改
0 条评论
回复 删除
下一页