【ElicitSearch】启动流程
生活随笔
收集整理的這篇文章主要介紹了
【ElicitSearch】启动流程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、集群啟動流程
1、選舉主節(jié)點
許多節(jié)點啟動,集群干的第一件事兒就是選主,之后的的流程由主節(jié)點觸發(fā)。
先確定唯一的、大家公認的主節(jié)點;再想辦法把最新的及其原數(shù)據(jù)復(fù)制到選舉的主節(jié)點上。
選主是對Bully算法的改進,主要思路是對節(jié)點 ID 排序,取最大值做 master,每個節(jié)點都運行這個流程。
由此產(chǎn)生三個制約條件:
- 參選人數(shù)需要過半,達到quorum后就選出了臨時的主。為什么是臨時的?每個節(jié)點運行排序取最大值的算法,結(jié)果不一定相同。舉個栗子,集群有5臺主機,節(jié)點 ID 分別是:1,2,3,4,5.當產(chǎn)生網(wǎng)絡(luò)分區(qū)或者節(jié)點啟動速度差異較大,節(jié)點1 看到的節(jié)點列表是:1,2,3,4,選出4;節(jié)點2看到的節(jié)點列表:2,3,4,5,選出5。結(jié)果就不一致了由此產(chǎn)生第二條限制。
- 得票數(shù)須過半。某節(jié)點被選為主,須判斷加入他的節(jié)點數(shù)過半,才確認 master 身份。解決第一個問題。
- master 節(jié)點,當探測到節(jié)點離開事件,須判斷當前節(jié)點數(shù)是否過半。如果不到quorum,則放棄 master 身份,重新加入集群。如果不這么做,設(shè)想以下情況:假設(shè)10臺機器組成的集群產(chǎn)生網(wǎng)絡(luò)分區(qū),3臺一組,7臺一組,產(chǎn)生分區(qū)前, Master位于3臺中的一個,此時7臺1組的節(jié)點會重新并成功選取 Master,產(chǎn)生雙主,俗稱腦裂。
2、選舉集群元信息
3、allocation過程
4、index recovery
5、集群啟動日志
二、節(jié)點啟動流程
概述:
1、啟動腳本
2、解析命令行參數(shù)和配置文件
3、加載安全配置
4、檢查內(nèi)部環(huán)境
5、檢測外部環(huán)境
6、啟動內(nèi)部模塊
7、啟動keepalive線程
【參考】
總結(jié)
以上是生活随笔為你收集整理的【ElicitSearch】启动流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CodeTON Round 3 (Div
- 下一篇: 01.MyBatis入门