标签:node doc 写入 shard primary 原理 document id es
es写数据过程
- 客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点)
- coordinting node,对document进行路由,将请求转发给对应的node(有primary shard)
- 实际的node上的primary shard处理请求,然后将数据同步到replica node
- coordinating node,如果发现primary node和所有replica node都搞定之后,就返回响应结果给客户端
es读数据过程
查询,GET某一条数据,写入某个document,这个document会自动给你分配一个全局唯一的id,doc id,同时也是根据doc id进行hash路由到对应的primary shard上面去。也可以手动指定doc id,比如用订单id,用户id。
你可以通过doc id来查询,会根据doc id进行hash,判断出来当时把doc id分配到了哪个shard上面去,从那个shard去查询
- 客户端发送请求到任意一个node,成为coordinate node
- coordinate node对document进行路由,将请求转发到对应的node,此时会使用round-robin随机轮询算法,在primary shard以及其所有replica中随机选择一个,让读请求负载均衡
- coordinate node返回document给客户端
es关键字搜索
- 客户端发送请求到一个coordinate node
- 协调节点将搜索请求转发到所有的shard对应的primary shard或者replica shard也可以
- query phase: 每个shard将自己的搜索结果(其实就是一些doc id),返回给协调节点,由协调节点进行数据的合并,排序,分页等操作,产出最终的结果。
- fetch phase: 接着由协调节点,根据doc id去各个节点上拉取实际的document数据,最终返回给客户端
标签:node,doc,写入,shard,primary,原理,document,id,es 来源: https://www.cnblogs.com/GoslingWu/p/15540985.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。