ES 底層原理

2021-10-25 19:22:04 字數 983 閱讀 8695

es一般情況下分為:主節點,子節點,雲端節點

主節點:(master:例如下面的boss)負責建立索引、刪除索引、分配分片、追蹤集群中的節點狀態等

子節點:負責儲存資料,修改索引,查詢資訊等

雲端節點: 負責當資料丟失情況,進行恢復

每個索引預設有5個分片,1個副本數

number_of_shards:分片數

number_of_replicas:備份數

【注意:該圖是es的head外掛程式建立索引時的截圖】

至於怎麼將檔案儲存到不同的節點,es會根據hashcode(routing)%分片數,進行分配

顏色粗的—>主分片

顏色淺的–>備份分片

修改時先從備份分片進行修改,等主節點確定修改無誤,才會將備份分片的內容複製拷貝到主分片,如果修改失敗,主分片可以恢復備份分片。但一般es不建議修改,因為es本身是用來做查詢和儲存的,修改起來會比較麻煩

查詢資訊時,首先master向包含主分片的節點傳送訊息(一般情況下master只包含主分片,但不能全部放在主節點上,因為要負載均衡),我要查詢某某資訊,對應的節點就開始查詢,假如對應的節點掛了,master會查詢擁有備份資訊的節點,並提公升備份分片為主分片,而且通知其他存活且空閒節點備份資訊,形成備份分片。又假如擁有主分片的查詢速度過慢,又存在擁有備份分片的空閒節點,那麼會再請求這個空閒節點同時查詢。

先寫這麼多,

HashMap底層原理

1.hashmap概述 hashmap是基於雜湊表的map介面的非同步實現。此實現提供所有可選的對映操作,並允許使用null值和null鍵。此類不保證對映的順序,特別是它不保證該順序恆久不變。2.hashmap的資料結構 注意,迭代器的快速失敗行為不能得到保證,一般來說,存在非同步的併發修改時,不可...

Spring IoC底層原理

siwuxie095 spring ioc 底層原理 1 ioc 即 inversion of control,控制反轉,把物件的建立 交給 spring 進行管理 2 ioc 容器管理 bean 的方式 1 基於 配置檔案的方式 2 基於 註解的方式 3 ioc 底層原理所使用的技術 1 xml ...

redis底層原理

plain view plain copy redis set message hello redis 物件的名稱 redis string 字串物件 redis list 列表物件 redis hash 雜湊物件 redis set 集合物件 redis zset 有序集合物件 cpp view ...