在es集群中,多個master選舉出乙個現役(active)master後,由於現役master網路波動但沒有宕機,導致其他主節點連線不到判斷宕機,其他主節點執行選舉邏輯,生成新的master,當網路波動消失,集群將會被多個master同時管理(meta data),最終集群中的資料會錯亂–腦裂。
原則:集群中之多只有乙個有效的現役master
配置檔案中準備乙個人過半的有效最小master數量
啟動es的集群時,可以成為master的節點可能有多個(master.node:true),最終成為現役master的節點是誰需要通過選舉完成(bully演算法,誰的id大/小)
1.節點啟動連線協調器,獲取集群所有節點資訊在記憶體中準備乙個activemaster的物件儲存現役master。
2.判斷activemaster中是否已經有現役master的值,如果有了,啟動結束,加入集群(一般都可以在第二步結束),如果沒有現役master進入第三步。
3.如果activemaster沒有值,將可以獲取的所有可以成為master的節點,加入到乙個後備list(candidate),判斷後備的candidate中是否有配置檔案制定最小的master數量,如果沒有,返回第一步重新連線,重新執行,滿足進入第四步。
4.執行bully選舉,從中選取id最大/最小,放到activemaster(暫定的master),重新執行第一步。
現役master宕機:
對於其他master來講,activemaster空了,執行第三步判斷candidate中是否岑仔有效的master數量,進行bully選舉。
宕機其他master:
會根據master數量(activemaster)判斷剩餘master是否滿足最小master數量決定是否可用。
elasticsearch備份恢復(單機 集群)
參考 版本 7.3 1 伺服器上建立 var backups資料夾,chmod 777 許可權 2 修改elasticsearch.yml檔案,新增 path.repo var backups 3 重啟es 4 建立快照倉庫 5 備份 put6 恢復 post restore7 檢視備份資訊 get...
Elasticsearch實際資料集搜尋操作
載入並建立索引 curl xpost 192.168.110.130 9200 bank account bulk?pretty refresh data binary account.json 1 rest請求uri傳送搜尋引數 curl xget 192.168.110.130 9200 ban...
Elasticsearch 面試題集綿
問題1 elasticsearch為啥是近實時搜尋?答 a.新增的文件會被收集到indexing buffer中,然後文件從indexing buffer寫入到檔案系統快取中,是需要每秒自動重新整理分片,這時索引文件的變化並不是立即對搜尋可見。問題2 elasticsearch深分頁查詢有什麼問題?...