目录
es写数据的过程
代码语言:javascript
复制集群有3个
客户端执行写数据的代码的时候,比如kibana里面往索引里面写数据,或者java代码
写数据。客户端会选择一个集群节点发送请求,这个集群节点就是协调节点。这个协调
节点会对写入的数据进行路由,这个路由是有一个算法,经过路由算法,会把请求转发
到对应的集群节点,现在认为转发后的集群节点名字是A,A节点里面的主分片会写入数据
,并且还会将数据同步到主分片的副本。
如果协调节点发现所有集群的主分片和主分片的副本都被写入数据,那么就会将响应结果
返回给客户端。
es查询数据过程
通过id进行查询过程
代码语言:javascript
复制kibana里面根据id查询数据,或者java代码里面根据id进行查询。
首先把请求发送到任意的一个集群节点,这个节点就是协调节点,
这个协调节点对id进行哈希路由,然后将请求转发到对应的集群节点。
这个请求到了对应的集群节点,里面会有一个随机算法,
会在主分片或者主分片的副本里面随机选择一个进行负载均衡。
比如现在选择了主分片,那么会将主分片里面对应id的文档返回给协调节点,
协调节点将文档返回给客户端
模糊查询过程
代码语言:javascript
复制kibana里面根据字段模糊查询数据,或者java代码里面根据字段进行模糊查询。
客户端发送请求到任意一个集群节点,这个集群节点就是协调节点,协调节点再将请求
发送到所有集群里面的主分片和主分片的副本。
每个主分片或者主分片的副本就在各自里面查找符合条件的数据,找到之后,
将对应文档数据的id返回给协调节点,协调节点拿到所有符合条件的数据id之后,
将数据进行合并,排序,分页等操作之后,最后就会有一定的结果。
之后协调节点拿的这些id到各个节点去拿对应的文档数据,并且将文档数据返回给客户端