Elasticsearch 源碼分析 :節(jié)點(diǎn)啟動(dòng)

前面三節(jié)講述了啟動(dòng)之前做的一系列。命令行檢查,安全設(shè)置,環(huán)境變量設(shè)置等操作。所有的操作都合法之后,開(kāi)始執(zhí)行啟動(dòng)節(jié)點(diǎn)。

在Bootstrap.java中,有start()方法來(lái)調(diào)用Node.java中的start()方法進(jìn)行節(jié)點(diǎn)啟動(dòng)執(zhí)行,啟動(dòng)執(zhí)行流程如下:

1:通過(guò)代碼Lifecycle.java中的moveToStarted進(jìn)行節(jié)點(diǎn)狀態(tài)的檢測(cè)。

Elasticsearch定義了四種狀態(tài):INITIALIZED,STOPED,STARTED,CLOSED

如果當(dāng)前節(jié)點(diǎn)狀態(tài)為INITALIZED或者STOPED,修改狀態(tài)為STARTED,返回true。如果節(jié)點(diǎn)狀態(tài)為STARTED,返回false.如果節(jié)點(diǎn)為CLOSED狀態(tài),那么拋出異常。


2: pluginLifecycleComponents.forEach(LifecycleComponent::start);

啟動(dòng)所有插件。所有的插件都通過(guò)實(shí)現(xiàn)LifecycleComponent接口,在node啟動(dòng)時(shí),安裝好的插件進(jìn)行啟動(dòng)

3: injector.getInstance(MappingUpdatedAction.class).setClient(client)

設(shè)置MappingUpdatedActionl類中IndicesAdminClient值為NodeClient。MappingUpdatedActionl實(shí)現(xiàn)了動(dòng)態(tài)修改index 的Mapping功能。

4:?injector.getInstance(IndicesService.class).start();? 啟動(dòng)索引服務(wù)

5: injector.getInstance(IndicesClusterStateService.class).start();? 啟動(dòng)集群索引狀態(tài)服務(wù)

6: injector.getInstance(SnapshotsService.class).start(); 啟動(dòng)快照服務(wù)

7:injector.getInstance(SnapshotShardsService.class).start(); 啟動(dòng)分片快照服務(wù)

8:injector.getInstance(RoutingService.class).start(); 啟動(dòng)路由服務(wù)

9:nodeService.getMonitorService().start(); 啟動(dòng)監(jiān)控服務(wù)

10:injector.getInstance(ResourceWatcherService.class).start(); 啟動(dòng)資源監(jiān)控服務(wù)

11:injector.getInstance(GatewayService.class).start(); 啟動(dòng)網(wǎng)關(guān)服務(wù)

12:transportService.start(); 啟動(dòng)transport服務(wù)?

13:discovery.start(); 啟動(dòng)節(jié)點(diǎn)發(fā)現(xiàn)服務(wù)

14:clusterService.start(); 啟動(dòng)集群服務(wù)

15:discovery.startInitialJoin(); 啟動(dòng)節(jié)點(diǎn)join服務(wù)

16:injector.getInstance(HttpServerTransport.class).start(); 啟動(dòng)Http傳輸服務(wù)


下篇繼續(xù)分析,各個(gè)服務(wù)之間的關(guān)系和每個(gè)服務(wù)的作用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評(píng)論 19 139
  • 此文為本人學(xué)習(xí)guice的過(guò)程中,翻譯的官方文檔,如有不對(duì)的地方,歡迎指出。另外還有一些附件說(shuō)明、吐槽、疑問(wèn)點(diǎn),持...
    李眼鏡閱讀 3,651評(píng)論 2 5
  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,353評(píng)論 0 5
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評(píng)論 6 342
  • 對(duì)于宿命,我們?cè)诮匐y逃? 我離開(kāi)家以后,風(fēng)正的消息會(huì)斷斷續(xù)續(xù)的傳到我的耳中,大多是在和父親的通話中得知的。 聽(tīng)說(shuō)風(fēng)...
    散沒(méi)閱讀 417評(píng)論 0 2

友情鏈接更多精彩內(nèi)容