分布式搜索引擎es原理

分布式架构原理 es中存储数据的基本单位是索引 index:mysql里的一张表 ,一个index里可以有多个type 每个type有一个mapping,mapping就是这个type的表结构 接着你搞一个索引,这个索引可以拆分成多个shard,每个shard存储部分数据。 这个shard的数据实际是有多个备份,每个shard都有一个primary shard,负责写入数据 但是还有几个replica shard。primary shard写入数据之后,会将数据同步到其他几个replica shard上去。(高可用)

怎么写入? 首先呢写入一条数据,挑选一个机器,就叫协调节点,协调节点经过hash讲数据路由到对应的primary shard 上,primary shard 将数据同步到replica上去,完成以后,协调节点会返回成功响应给客户端 primary shard会把数据写在内存buffer里,同时写在translog日志文件里 如果Buffer快满了,就会将buffer数据先进os cache缓存一下 然后refresh到一个新的segment file(磁盘文件中) 只要buffer中的数据被refresh操作,刷入os cache中,就代表这个数据就可以被搜索到了

经验分享 程序员 微信小程序 职场和发展