ES读写数据工作流程
写入数据
- 客户端发送写数据请求时,可以发送到任意节点。这个节点就会成为coordinating node
- coordinating node会计算要写入哪个分片(采用hash取模的方式来计算)
- 协调节点会进行路由,将请求转发给对应的primary sharding所在的data node
- data node上的primary sharding处理请求,写入数据到索引库,并且将数据同步到对应的replica sharding
- 等primary sharding和replica sharding都保存好文档之后,返回客户端响应
查询数据
- 客户端发送请求给任意节点,这个节点就成为coordinating node
- coordinating node将查询请求广播到每一个data node,这些data node的sharding就会处理该查询请求
- 每个sharding进行数据查询,将符合条件的数据放到一个队列中,并将这些数据的文档id、节点信息、分片信息都返回给coordinating node
- 由coordinating node将所有的结果进行汇总,并排序
- coordinating node向包含这些文档id的sharding发送get请求,对应的sharding将文档信息返回给coordinating node
- coordinating node将数据整合返回给客户端
上一篇
mybatis-常用ongl表达式
下一篇
nacos-distro协议