es 寫數據過程
一、客戶端選擇一個 node 發送請求過去,這個 node 就是 coordinating node
(協調節點)
二、coordinating node
對 document 進行路由,將請求轉發給對應的 node(有 primary shard)
三、實際的 node 上的 primary shard
處理請求,然后將數據同步到 replica node
四、coordinating node
如果發現 primary node
和所有 replica node
都搞定之后,就返回響應結果給客戶端
寫請求是寫入 primary shard,然后同步給所有的 replica shard;讀請求可以從 primary shard 或 replica shard 讀取,采用的是隨機輪詢算法。
es 讀數據過程
一、客戶端發送請求到一個 coordinate node(協調節點)
二、協調節點將搜索請求轉發到所有的 shard 對應的 primary shard
或 replica shard
,都可以
三、每個 shard 將自己的搜索結果(其實就是一些 doc id
)返回給協調節點,由協調節點進行數據的合並、排序、分頁等操作,產出最終結果(doc id list)
四、接着由協調節點根據 doc id
去各個節點上拉取實際的 document
數據,最終返回給客戶端