假设存在三个节点 NODE1、NODE2、NODE3。其中 NODE1 会接受客户端的请求,它作为
Coordinate Node 或者成为 Master Node。将索引放到两个分片中,主分片分别为 P0 和 P1,P0 对应的两个副本 R0、R0,P1 对应的两个副本 R1、R1。
1. 客户端发送更新操作请求至NODE1。 2.NODE1 将请求路由至 NODE3,也就是主分片 P0 所在的位置。 3.NODE3 从 P0 读取文档,改变 source 字段的 JSON 内容,然后试图重新对修改后的数据在 P0 做索引。如果此时这个文档已经被其他的进程修改了,那么它将重新执行 3 步骤,这个过程如果超过了 retryon_conflict 设置的次数,就放弃。 4.如果NODE3成功更新了文档,它将新版本的文档同步到NODE1和NODE2的副本 R0 中,重新建立索引。一旦所有的副本报告同步成功,NODE3 向节点 NODE1 返回成功,然后 NODE1 向客户端返回成功。



