文檔能夠從主分片或任意一個(gè)復(fù)制分片被檢索。對(duì)于讀請(qǐng)求,為了平衡負(fù)載,請(qǐng)求節(jié)點(diǎn)會(huì)為每個(gè)請(qǐng)求選擇不同的分片——它會(huì)循環(huán)所有分片副本。

讀.png
1 客戶(hù)端給Node 1發(fā)送get請(qǐng)求。
2 節(jié)點(diǎn)使用文檔的_id確定文檔屬于分片0。分片0對(duì)應(yīng)的復(fù)制分片在三個(gè)節(jié)點(diǎn)上都有。此時(shí),它轉(zhuǎn)發(fā)請(qǐng)求到Node 2。
3 Node 2返回給Node 1,然后返回給客戶(hù)端。
注意:
一個(gè)被索引的文檔已經(jīng)存在于主分片上卻還沒(méi)來(lái)得及同步到復(fù)制分片上。這時(shí)復(fù)制分片會(huì)報(bào)告文檔未找到,主分片會(huì)成功返回文檔。一旦索引請(qǐng)求成功返回給用戶(hù),文檔則在主分片和復(fù)制分片都是可用的。
多文檔操作,請(qǐng)求節(jié)點(diǎn)知道每個(gè)文檔所在的分片,把多文檔請(qǐng)求拆成每個(gè)分片的對(duì)文檔請(qǐng)求,然后轉(zhuǎn)發(fā)至每個(gè)參與的節(jié)點(diǎn)。