1. 程式人生 > >ElasticSearch20:document內部查詢原理圖解

ElasticSearch20:document內部查詢原理圖解

1.查詢請求的原理

1)首先客戶端選擇任意一個節點,傳送請求get document id=1,P1

2)傳送到node1上時,node1就是協調節點(coordinate node),coordinate node對document進行路由,路由之後,就知道在哪個primary shard上面了。

3)前面的過程和增刪改是一樣的,後面有點不同了。coordinate node知道在哪個primary shard上面後,不一定直接傳送到對應的primary shard上,也可以傳送到replica shard上。

4)coordinate node採取round-robin隨機輪訓演算法,日不說coordinate node,接收到了對一個document的4次查詢後,就會使用演算法,將2次查詢請求轉發給P1,將2次請求轉發給R1,儘量讓primary shard和所有的replica shard均勻的服務讀請求,得到負載均衡的效果。


最後,coordinate node將查詢到的結果資料返回給客戶端。

但是如果P1新建好資料,R1正在建立索引,那麼此時傳送請求時,如果coordinate node節點將請求轉發到了replica shard上時,這個時候就會返回找不到資料。

當建立索引完成後,primary shard和replica shard上資料就齊全了。