文章目录
数据写到es的流程
- 数据写到es的流程
- 读数据的流程
客户端连接es集群之前, 并不知道, 要连接哪一台节点的数据. 插入数据的路由计算 ,是客户端连接到es集群后, 所需要进行的计算.
在一开始客户端连接es集群的时候, 可能连接的是node2, 但根据es计算出来的id和hash运算取模后, 可能是node1, 此时node2就会把数据转发到node1 .
- 客户端请求集群节点 (协调节点)
- 协调节点将请求转换到指定的节点
- 主分片进行数据的保存
- 主分片把数据发送到各个副本
- 副本将数据进行保存, 给主分片返回ack
- 主分片给客户端返回ack, 数据保存完成.
- 客户端获取协调节点保存完毕的响应.
es的consistency参数 : one: 只要主分片保存成功即可 all: 主分片和所有副本保存完毕才算成功 quorum: 主分片和大多数副本保存完毕即可. (默认值)
timeout: 没有足够的分片副本保存成功, 等待的时长, 默认是1分钟.
读数据的流程- 客户端发送请求数据到es集群的协调节点
- 协调节点计算数据所在的分片以及全部数据分片的副本位置
- 协调节点负载均衡请求到具体的节点
- 具体的某个节点把数据返回数据给协调节点
- 协调节点再把数据返回给客户端