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