1、ES如何實現分佈式高併發全文檢索?爲什麼要實現集羣?
ES核心存放是索引。
由於在單臺ES服務器節點上,隨着業務量的發展索引文件慢慢增多,會影響到效率和內存存儲問題。
如果ES實現了集羣的話,會將單臺服務器節點的索引文件使用分片技術,分佈式存放在多個不同的物理機器上。
從而可以實現高可用、容錯性等。
分片技術:將數據拆分成多臺節點進行存放。
2、簡單介紹ES分片Shards分片技術?ES是如何解決高併發?
ES是一個分佈式全文檢索框架,隱藏了複雜的處理機制,內部使用分片機制、集羣發現、分片負載均衡請求路由。
Shards分片:代表索引分片,ES可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,
分佈到不同節點上。構成分佈式搜索。分片的數量只能在索引創建前指定,並且索引創建後不能更改。
Replicas分片:代表索引副本,ES可以設置多個索引的副本,副本的作用一是提供系統的容錯性,
當某個節點某個分片損壞或丟失時可以從副本中恢復。二是提高ES的查詢效率,
ES會對自動搜索請求進行負載均衡。
number_of_shards: 5 主分片
number_of_replicas: 1 副分片
在ES中每一個主分片都會對應一個副分片,如果已經定義好了主分片的數量,就不能再改主分片的數量。
3、爲什麼ES主分片對應的備份分片不在同一臺節點存放?
每一個主分片爲了實現高可用,都會有對應的備份分片,主分片對應的備份分片不能不能存放同一臺服務器上,主分片可以和其他備份分片存放在同一node節點上。
注意:對應的主的分片和備的分片不能存放在同一node節點上。
4、索引的主分片定義好後爲什麼不能作修改?
5、ES如何實現高可用容錯方案?