欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

elasticsearch集群cluster主要功能詳細(xì)分析

 更新時(shí)間:2022年04月21日 15:17:46   投稿:ychy  
這篇文章主要為大家介紹了elasticsearch集群cluster主要功能詳細(xì)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

在源碼概述中我們分析過,elasticsearch源碼從功能上可以分為分布式功能和數(shù)據(jù)功能,接下來這幾篇會就分布式功能展開。這里首先會對cluster作簡單概述,然后對cluster所涉及的主要功能詳細(xì)分析。

 elasticsearch的集群功能代碼在cluster包中,通過ClusterService接口對外暴露。

cluster主要包括以下功能:

發(fā)現(xiàn)(Discovery),路由(routing),傳送功能(transport),集群狀態(tài)(clusterstates)等。

發(fā)現(xiàn)功能功能主要用于節(jié)點(diǎn)啟動后發(fā)現(xiàn)集群,master向所有節(jié)點(diǎn)發(fā)布集群狀態(tài),選舉master節(jié)點(diǎn)并引發(fā)集群節(jié)點(diǎn)變得事件;

routing記錄了集群中各個(gè)shard的位置,為節(jié)點(diǎn)提供數(shù)據(jù)信息;

transport是節(jié)點(diǎn)間交流的主要通道,elasticsearch應(yīng)用了netty框架實(shí)現(xiàn)了功能強(qiáng)大的transport功能;

集群狀態(tài)(clusterstates)實(shí)現(xiàn)了一些集群狀態(tài),同時(shí)提供了一些方法,在集群每次變得時(shí),master節(jié)點(diǎn)都會重新構(gòu)建clusterstates,并將集群狀態(tài)發(fā)送給每個(gè)節(jié)點(diǎn)。

節(jié)點(diǎn)根據(jù)cluster狀態(tài)來確定某些操作是否能執(zhí)行。

下圖是顯示了clusterstate的主要Fields

clusterstate的version是clusterstate的版本每次被更新它都會增加,routingTables包含了集群中所有索引的位置信息,nodes是當(dāng)前集群中的所有節(jié)點(diǎn),metaData是索引的一些元數(shù)據(jù),blocks包含了集群的阻塞狀態(tài),

集群一共有三種阻塞級別:read,write和matedata;

status集群的狀態(tài)有四種:unknown,RECEIVED,BEING_APPLIED,APPLIED。

集群功能的接口clusterservice的繼承關(guān)系如下所示:

所有實(shí)現(xiàn)都在InternalClusterService中,它同時(shí)繼承了AutoCloseAble接口和LifecycleComponent接口。

上圖為clusterservice的方法,這些方法包括集群的啟動與關(guān)閉,集群狀態(tài)修改和發(fā)布及節(jié)點(diǎn)間ping通信等,這些方法只是從從內(nèi)部看集群是不存在實(shí)體的,它的功能是由一個(gè)個(gè)節(jié)點(diǎn)實(shí)現(xiàn)的。因此對于集群的操作最終還是對每個(gè)節(jié)點(diǎn)的操作。單有些操作只能由master來進(jìn)行,有些則是所有節(jié)點(diǎn)都需要進(jìn)行的操作。每個(gè)加入集群后就會增加clusterstatelistener及l(fā)ocalmasterlisener,但是clusterstate的發(fā)布則只能由master節(jié)點(diǎn)來實(shí)現(xiàn)。

以上就是對clusterservice的概述,限于篇幅。下一篇會對其進(jìn)行詳細(xì)分析,希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論