版本:ES6.x
看了网上的很多说ES插入操作的流程,有如下疑问:
当请求要创建Doc的时候,主分片接受请求并转发请求到副本所在的节点的时候,是主分片写成功就返回给客户端成功了还是要等所有的副本分片都成功了才返回给客户端成功,如果是第二个的话 那么有的副本分片所在的节点写失败了或者超时了 这个时候是怎么处理的,有点疑问,请知道的同学说下这个流程。谢谢
看了网上的很多说ES插入操作的流程,有如下疑问:
当请求要创建Doc的时候,主分片接受请求并转发请求到副本所在的节点的时候,是主分片写成功就返回给客户端成功了还是要等所有的副本分片都成功了才返回给客户端成功,如果是第二个的话 那么有的副本分片所在的节点写失败了或者超时了 这个时候是怎么处理的,有点疑问,请知道的同学说下这个流程。谢谢
2 个回复
kennywu76 - Wood
赞同来自: strglee 、Acepcs 、cccthought 、zisonmo
如果主片写成功了,但某个副片所在结点故障,无法响应或者响应超时, 主分片会向master发送shard failed通知,由master更新in-sync group,将失败的副片从组内剔除出去。 之后,只要是剩余的in-sync shard都写成功了,就会返回给客户端。 默认的集群配置情况下,只要in-sync group里有至少一个shard可用(用来担当主片角色),写入就可以成功,并返回给客户端。
strglee
赞同来自:
https://www.elastic.co/guide/c ... .html