本發(fā)明涉及分布式系統(tǒng),尤其涉及一種端側(cè)自由組網(wǎng)分布式系統(tǒng)。
背景技術(shù):
1、當(dāng)前多節(jié)點(diǎn)的分布式系統(tǒng)在各個(gè)領(lǐng)域得到了廣泛應(yīng)用,如大數(shù)據(jù)處理、微服務(wù)架構(gòu)、容器化部署、人工智能、深度學(xué)習(xí)、機(jī)器學(xué)習(xí)等場景。業(yè)界在大規(guī)模場景下的資源使用模式基本上都是采用云上資源和本地資源相結(jié)合的方式使用。
2、在多節(jié)點(diǎn)分布式系統(tǒng)中,主節(jié)點(diǎn)(master?node)扮演著至關(guān)重要的角色,主要負(fù)責(zé)管理和控制整個(gè)分布式系統(tǒng)的操作。具體來說,主節(jié)點(diǎn)的功能包括:主節(jié)點(diǎn)負(fù)責(zé)監(jiān)視集群中各個(gè)節(jié)點(diǎn)的狀態(tài),協(xié)調(diào)任務(wù)調(diào)度,分配資源,以及處理異常情況。同時(shí),主節(jié)點(diǎn)還可管理集群范圍內(nèi)的所有變更,包括增加、刪除索引或節(jié)點(diǎn)等。主節(jié)點(diǎn)通過維護(hù)系統(tǒng)中各節(jié)點(diǎn)的相關(guān)狀態(tài)信息,確保分布式系統(tǒng)的高可用性和穩(wěn)定性。但在實(shí)際使用過程中,主節(jié)點(diǎn)不可避免的產(chǎn)生故障,進(jìn)而使得分布式系統(tǒng)無法正常工作。
3、現(xiàn)在技術(shù)中,通常在主節(jié)點(diǎn)發(fā)生故障時(shí),采用指定或者選舉的方式,選定新的主節(jié)點(diǎn)。然而上述兩種方式在端側(cè)自由組網(wǎng)分布式系統(tǒng)中都會(huì)存在問題,指定方式通常將master節(jié)點(diǎn)固定為某幾個(gè)節(jié)點(diǎn)。這種模式主節(jié)點(diǎn)容錯(cuò)率低,不具備自動(dòng)選主能力。而端側(cè)自由組網(wǎng)分布式系統(tǒng)中節(jié)點(diǎn)狀態(tài)變化較快,隨時(shí)都可能新增上線節(jié)點(diǎn)或者下線節(jié)點(diǎn),極有可能出現(xiàn)設(shè)定的節(jié)點(diǎn)同時(shí)不在線的情況,主節(jié)點(diǎn)故障后將會(huì)給業(yè)務(wù)造成不可挽回的損失。
4、而采用選舉的方式,首選需要設(shè)定合理復(fù)雜的選主規(guī)則,同時(shí),還必須將選舉的節(jié)點(diǎn)數(shù)量控制在奇數(shù),以避免無法得出選舉結(jié)果的情況,這對(duì)于端側(cè)自由組網(wǎng)分布式系統(tǒng)來說時(shí)較難實(shí)現(xiàn)的,首先節(jié)點(diǎn)的數(shù)量眾多,且處于實(shí)時(shí)變化之中。很難確定哪些節(jié)點(diǎn)可以參加選舉才能選舉出新的合理的主節(jié)點(diǎn)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供了一種端側(cè)自由組網(wǎng)分布式系統(tǒng),以解決現(xiàn)有技術(shù)中針對(duì)端側(cè)自由組網(wǎng)分布式系統(tǒng)在主節(jié)點(diǎn)故障時(shí),快速確定新的主節(jié)點(diǎn)的技術(shù)問題。
2、具體的,本發(fā)明實(shí)施例提供了一種端側(cè)自由組網(wǎng)分布式系統(tǒng),包括:
3、包括:
4、多個(gè)節(jié)點(diǎn),其中,每個(gè)節(jié)點(diǎn)均設(shè)有:
5、動(dòng)作記錄管理器,用于記錄用戶的組網(wǎng)操作信息,并根據(jù)不同時(shí)刻的組網(wǎng)操作生成不同版本的組網(wǎng)操作記錄;
6、控制器,所述控制器用于從動(dòng)作記錄管理器獲取用戶的組網(wǎng)操作記錄,并對(duì)記錄進(jìn)行合并/去重處理,得到最新版本的系統(tǒng)組網(wǎng)信息記錄;
7、用于接收主節(jié)點(diǎn)定時(shí)發(fā)送的網(wǎng)絡(luò)節(jié)點(diǎn)列表更新信息,維護(hù)網(wǎng)絡(luò)節(jié)點(diǎn)列表,所述網(wǎng)絡(luò)節(jié)點(diǎn)列表標(biāo)注主節(jié)點(diǎn)和從節(jié)點(diǎn),并標(biāo)注每個(gè)節(jié)點(diǎn)的最新狀態(tài)信息;
8、用于在發(fā)現(xiàn)主節(jié)點(diǎn)故障時(shí),按照所述網(wǎng)絡(luò)節(jié)點(diǎn)列表的順序選取新的主節(jié)點(diǎn)。
9、進(jìn)一步的,所述控制器還用于:
10、在確定所在節(jié)點(diǎn)為新的主節(jié)點(diǎn)后,根據(jù)所述網(wǎng)絡(luò)節(jié)點(diǎn)列表對(duì)網(wǎng)絡(luò)中所有的節(jié)點(diǎn)進(jìn)行健康檢查,根據(jù)健康檢查結(jié)果生成網(wǎng)絡(luò)節(jié)點(diǎn)列表更新信息。
11、進(jìn)一步的,所述控制器還用于:
12、在確定所在節(jié)點(diǎn)為新的主節(jié)點(diǎn)后,對(duì)其它節(jié)點(diǎn)發(fā)送數(shù)據(jù)同步命令;
13、相應(yīng)的,其它從節(jié)點(diǎn)的控制器還用于:
14、根據(jù)所述數(shù)據(jù)同步命令和同步的數(shù)據(jù)信息對(duì)自身存儲(chǔ)的數(shù)據(jù)進(jìn)行同步。
15、進(jìn)一步的,主節(jié)點(diǎn)的控制器還用于:
16、根據(jù)各個(gè)節(jié)點(diǎn)的最新版本的系統(tǒng)組網(wǎng)信息記錄,生成網(wǎng)絡(luò)節(jié)點(diǎn)列表更新信息。
17、進(jìn)一步的,所述每個(gè)節(jié)點(diǎn)還設(shè)有:
18、應(yīng)用接口服務(wù)器,用于提供分布式系統(tǒng)的應(yīng)用接口,統(tǒng)一對(duì)外提供http服務(wù)。
19、進(jìn)一步的,所述應(yīng)用接口服務(wù)器,還用于:
20、提供自由組網(wǎng)的api接口,利用api接口接收組網(wǎng)操作,并根據(jù)組網(wǎng)操作進(jìn)行組網(wǎng)處理。
21、進(jìn)一步的,所述動(dòng)作記錄管理器,用于根據(jù)api結(jié)構(gòu)接收到的組網(wǎng)操作記錄用戶的組網(wǎng)操作信息。
22、進(jìn)一步的,所述主節(jié)點(diǎn)的控制器還用于:
23、利用各個(gè)節(jié)點(diǎn)最新版本的系統(tǒng)組網(wǎng)信息記錄生成的網(wǎng)絡(luò)節(jié)點(diǎn)列表,并定時(shí)向各個(gè)從節(jié)點(diǎn)發(fā)送最新版本的系統(tǒng)組網(wǎng)信息記錄。
24、更進(jìn)一步的,所述每個(gè)節(jié)點(diǎn)還設(shè)有:
25、設(shè)備分類器,根據(jù)所在節(jié)點(diǎn)設(shè)備的類型來決定所述節(jié)點(diǎn)的角色和功能。
26、本發(fā)明實(shí)施例提供的端側(cè)自由組網(wǎng)分布式系統(tǒng),通過在每個(gè)節(jié)點(diǎn)均設(shè)有:動(dòng)作記錄管理器,用于記錄用戶的組網(wǎng)操作信息,并根據(jù)不同時(shí)刻的組網(wǎng)操作生成不同版本的組網(wǎng)操作記錄;控制器,所述控制器用于從動(dòng)作記錄管理器獲取用戶的組網(wǎng)操作記錄,并對(duì)記錄進(jìn)行合并/去重處理,得到最新版本的系統(tǒng)組網(wǎng)信息記錄;用于接收主節(jié)點(diǎn)定時(shí)發(fā)送的網(wǎng)絡(luò)節(jié)點(diǎn)列表更新信息,維護(hù)網(wǎng)絡(luò)節(jié)點(diǎn)列表,所述網(wǎng)絡(luò)節(jié)點(diǎn)列表標(biāo)注主節(jié)點(diǎn)和從節(jié)點(diǎn),并標(biāo)注每個(gè)節(jié)點(diǎn)的最新狀態(tài)信息;用于在發(fā)現(xiàn)主節(jié)點(diǎn)故障時(shí),按照所述網(wǎng)絡(luò)節(jié)點(diǎn)列表的順序選取新的主節(jié)點(diǎn)。利用端側(cè)自由組網(wǎng)分布式系統(tǒng)中節(jié)點(diǎn)狀態(tài)靈活多變的特點(diǎn),在每個(gè)節(jié)點(diǎn)設(shè)有控制器,利用控制器得到最新變化的組網(wǎng)操作記錄,主節(jié)點(diǎn)可以根據(jù)各節(jié)點(diǎn)的最新組網(wǎng)操作記錄生成網(wǎng)絡(luò)節(jié)點(diǎn)列表,并定時(shí)將最新更行的網(wǎng)絡(luò)節(jié)點(diǎn)列表發(fā)送至在線的所有從節(jié)點(diǎn),以使得從節(jié)點(diǎn)具有一致的網(wǎng)絡(luò)節(jié)點(diǎn)列表,并在確定主節(jié)點(diǎn)故障時(shí),根據(jù)所述網(wǎng)絡(luò)節(jié)點(diǎn)列表按照順序選取節(jié)點(diǎn)作為主節(jié)點(diǎn)。與指定方式相比,選定的主節(jié)點(diǎn)可以處于動(dòng)態(tài)變化中,且隨端側(cè)自由組網(wǎng)分布式系統(tǒng)節(jié)點(diǎn)狀態(tài)進(jìn)行實(shí)時(shí)更新,避免了主節(jié)點(diǎn)故障帶來的業(yè)務(wù)風(fēng)險(xiǎn),與選舉方式相比,對(duì)端側(cè)自由組網(wǎng)分布式系統(tǒng)的節(jié)點(diǎn)數(shù)量不做任何限制,同時(shí)無需復(fù)雜的規(guī)則和選舉計(jì)算,即可得到合適的新的主節(jié)點(diǎn)。更加適用于在端側(cè),進(jìn)行自由組網(wǎng)的集群使用場景。
1.一種端側(cè)自由組網(wǎng)分布式系統(tǒng),其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述控制器還用于:
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述控制器還用于:
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,主節(jié)點(diǎn)的控制器還用于:
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述每個(gè)節(jié)點(diǎn)還設(shè)有:
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述應(yīng)用接口服務(wù)器,還用于:
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述動(dòng)作記錄管理器,用于根據(jù)api結(jié)構(gòu)接收到的組網(wǎng)操作記錄用戶的組網(wǎng)操作信息。
8.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述主節(jié)點(diǎn)的控制器還用于:
9.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述每個(gè)節(jié)點(diǎn)還設(shè)有: