(精华)ES架构图_JAVA_流程图_架构图_系统图_数据库
2024-11-03 14:22:08 152 举报
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 条评论
下一页