本發(fā)明涉及邊緣計(jì)算,具體涉及一種面向智能電網(wǎng)的集群狀態(tài)同步方法及系統(tǒng)。
背景技術(shù):
1、隨著邊緣計(jì)算理念和智能終端設(shè)備不斷普及,“云-邊-端”協(xié)同融合已成為熱點(diǎn),廣泛用于支撐智能電網(wǎng)等典型應(yīng)用場(chǎng)景。當(dāng)前,智能電網(wǎng)場(chǎng)景中存在大量固定部署的邊緣計(jì)算服務(wù)器以及海量智能電表等傳感器,同時(shí)存在大量需要周期性移動(dòng)的巡線(xiàn)無(wú)人機(jī)、運(yùn)維機(jī)器人等設(shè)備,支撐常態(tài)化巡檢和狀態(tài)監(jiān)測(cè)告警等應(yīng)用。在這類(lèi)應(yīng)用中,依賴(lài)邊緣集群的狀態(tài)信息完成任務(wù)分配和調(diào)度,從而高效利用邊緣計(jì)算資源。例如,邊緣集群內(nèi)各節(jié)點(diǎn)的可用算力、可用內(nèi)存、可用磁盤(pán)空間等信息需要匯聚到集群中的某些決策節(jié)點(diǎn),邊緣計(jì)算節(jié)點(diǎn)的計(jì)算結(jié)果等數(shù)據(jù)需要在特定范圍內(nèi)同步,從而支持任務(wù)調(diào)度和分配。
2、然而,在智能電網(wǎng)邊緣網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)連接模式和網(wǎng)絡(luò)延遲可能頻繁變化,集群狀態(tài)同步面臨挑戰(zhàn)。邊緣環(huán)境中通常不具備穩(wěn)定的有線(xiàn)或無(wú)線(xiàn)網(wǎng)絡(luò)連接,部分任務(wù)執(zhí)行過(guò)程中可能也會(huì)出現(xiàn)周期性、間歇性的網(wǎng)絡(luò)連接中斷,導(dǎo)致網(wǎng)絡(luò)分區(qū)成為常態(tài)。例如,運(yùn)維無(wú)人機(jī)在執(zhí)行巡線(xiàn)等維護(hù)任務(wù)過(guò)程中無(wú)法時(shí)刻保持與地面集群的連接,在每一個(gè)周期內(nèi)可能僅有部分的連接窗口能夠與地面集群交換數(shù)據(jù)。然而,現(xiàn)有的數(shù)據(jù)分發(fā)、狀態(tài)同步、數(shù)據(jù)一致性保障等方法通常將網(wǎng)絡(luò)分區(qū)視為等同于節(jié)點(diǎn)失效的一種異常情況,使用順序或最終一致性保障機(jī)制以應(yīng)對(duì)這一失效場(chǎng)景,引入不必要的失效恢復(fù)開(kāi)銷(xiāo);另一方面,由于現(xiàn)有方法未能充分考慮網(wǎng)絡(luò)中斷具有的周期性特征,可能引入頻繁且不必要的節(jié)點(diǎn)上線(xiàn)、離線(xiàn)、集群拓?fù)渚S護(hù)等與節(jié)點(diǎn)生命周期相關(guān)的操作,可能對(duì)集群性能及可用性帶來(lái)較大影響。
3、綜上,亟需一種面向智能電網(wǎng)的集群狀態(tài)同步方法及系統(tǒng),針對(duì)智能電網(wǎng)邊緣網(wǎng)絡(luò)特征設(shè)計(jì)相應(yīng)的節(jié)點(diǎn)、集群拓?fù)浜途W(wǎng)絡(luò)連接模式的發(fā)現(xiàn)和維護(hù)機(jī)制,感知網(wǎng)絡(luò)中節(jié)點(diǎn)的周期性網(wǎng)絡(luò)連接的特征,指導(dǎo)集群在合適的時(shí)機(jī)執(zhí)行狀態(tài)同步操作,以降低網(wǎng)絡(luò)延遲和連接模式突變?cè)斐傻挠绊懀岣呒籂顟B(tài)同步的性能和可用性。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提出一種面向智能電網(wǎng)的集群狀態(tài)同步方法及系統(tǒng),解決邊緣網(wǎng)絡(luò)環(huán)境中由于網(wǎng)絡(luò)連接模式和延遲突變導(dǎo)致的集群狀態(tài)同步的性能和可用性問(wèn)題。
2、本發(fā)明實(shí)現(xiàn)上述目的所采用的技術(shù)方案如下:
3、一種面向智能電網(wǎng)的集群狀態(tài)同步方法,集群包括一個(gè)管理節(jié)點(diǎn)和多個(gè)工作節(jié)點(diǎn),該方法包括以下步驟:
4、獲取所有節(jié)點(diǎn)之間的網(wǎng)絡(luò)延遲信息;
5、根據(jù)獲取的網(wǎng)絡(luò)延遲信息,將相互之間的網(wǎng)絡(luò)延遲小于預(yù)設(shè)閾值的多個(gè)節(jié)點(diǎn)劃分為同一個(gè)自治區(qū)域;對(duì)于任意兩個(gè)自治區(qū)域,將分屬于這兩個(gè)自治區(qū)域的網(wǎng)絡(luò)延遲最小的兩個(gè)節(jié)點(diǎn)作為種子節(jié)點(diǎn);
6、在管理節(jié)點(diǎn)、種子節(jié)點(diǎn)以及種子節(jié)點(diǎn)的同自治區(qū)域內(nèi)的鄰居節(jié)點(diǎn)之間建立同步路徑;
7、監(jiān)測(cè)各個(gè)自治區(qū)域之間的連接模式,確定管理節(jié)點(diǎn)所在的自治區(qū)域與其他自治區(qū)域之間的連接窗口;
8、各個(gè)自治區(qū)域內(nèi)的種子節(jié)點(diǎn)獲取同一自治區(qū)域內(nèi)其他節(jié)點(diǎn)的狀態(tài)信息,在上述連接窗口內(nèi),種子節(jié)點(diǎn)將自治區(qū)域的全部狀態(tài)信息沿同步路徑傳輸給管理節(jié)點(diǎn),完成集群狀態(tài)同步;
9、通過(guò)管理節(jié)點(diǎn)輸出獲取的全部狀態(tài)信息。
10、進(jìn)一步地,管理節(jié)點(diǎn)通過(guò)種子節(jié)點(diǎn)采集自治區(qū)域中所有節(jié)點(diǎn)的心跳信息,并從心跳信息中提取特征,獲取每次心跳信息的間隔和周期,判斷節(jié)點(diǎn)存活性和連接周期性;然后對(duì)每個(gè)自治區(qū)域維護(hù)一個(gè)心跳信息的位圖,每個(gè)節(jié)點(diǎn)的存活性使用一個(gè)二進(jìn)制位標(biāo)記;對(duì)斷連的自治區(qū)域,使用一個(gè)二進(jìn)制位來(lái)標(biāo)記整個(gè)區(qū)域的存活性。
11、進(jìn)一步地,對(duì)于在連接窗口內(nèi)失效的節(jié)點(diǎn),首先判斷失效節(jié)點(diǎn)的鄰居節(jié)點(diǎn)到失效節(jié)點(diǎn)所處自治區(qū)域中其他節(jié)點(diǎn)的連通性,確認(rèn)失效范圍;對(duì)于單節(jié)點(diǎn)失效,其鄰居節(jié)點(diǎn)使用固定間隔向失效節(jié)點(diǎn)發(fā)送心跳探測(cè)包,管理節(jié)點(diǎn)使用指數(shù)級(jí)退讓機(jī)制探測(cè)失效節(jié)點(diǎn)健康狀態(tài),獲得管理節(jié)點(diǎn)到該自治區(qū)域的連接窗口;對(duì)于多節(jié)點(diǎn)失效,獲得節(jié)點(diǎn)所處自治區(qū)域的連接窗口大小,以0.1倍連接窗口大小作為初始間隔,當(dāng)距離下一個(gè)連接窗口的時(shí)間小于兩個(gè)連接窗口間隔時(shí)間的1/3時(shí),將探測(cè)間隔縮小為0.02倍連接窗口大小,直至探測(cè)到恢復(fù)與失效節(jié)點(diǎn)連接的連接窗口。
12、進(jìn)一步地,對(duì)網(wǎng)絡(luò)延遲小于預(yù)設(shè)閾值的節(jié)點(diǎn)設(shè)置相同的標(biāo)記,根據(jù)設(shè)置的標(biāo)記劃分自治區(qū)域;對(duì)于失效節(jié)點(diǎn),將其加入上次劃分的自治區(qū)域,如果是不存在上次劃分的自治區(qū)域,則將其加入隨機(jī)鄰居節(jié)點(diǎn)所屬的自治區(qū)域,完成所有節(jié)點(diǎn)的自治區(qū)域分配。
13、進(jìn)一步地,對(duì)每?jī)蓚€(gè)自治區(qū)域,每隔固定時(shí)間窗口獲取種子節(jié)點(diǎn)連通性數(shù)據(jù),持續(xù)記錄過(guò)去時(shí)間窗口內(nèi)的平均延遲和延遲方差;當(dāng)平均延遲和延遲方差相較過(guò)去的時(shí)間窗口的平均值偏離超過(guò)預(yù)設(shè)閾值時(shí),記錄上一次網(wǎng)絡(luò)延遲穩(wěn)定的時(shí)間段作為該兩個(gè)自治區(qū)域的連接窗口。
14、進(jìn)一步地,為每個(gè)自治區(qū)域創(chuàng)建數(shù)據(jù)同步拓?fù)洌园l(fā)起狀態(tài)同步的管理節(jié)點(diǎn)為根節(jié)點(diǎn)構(gòu)建生成樹(shù),自治區(qū)域的種子節(jié)點(diǎn)為其子節(jié)點(diǎn);將種子節(jié)點(diǎn)的鄰居節(jié)點(diǎn)作為種子節(jié)點(diǎn)在生成樹(shù)中的下級(jí)子節(jié)點(diǎn),形成完整的同步路徑。
15、進(jìn)一步地,當(dāng)兩個(gè)自治區(qū)域位于連接窗口時(shí),將該兩個(gè)自治區(qū)域視為同一個(gè)自治區(qū)域并生成同步路徑,以在連接窗口內(nèi)進(jìn)行數(shù)據(jù)交換。
16、進(jìn)一步地,通過(guò)種子節(jié)點(diǎn)保存最近的狀態(tài)信息快照,并記錄同步進(jìn)度;當(dāng)在連接窗口內(nèi)進(jìn)行狀態(tài)同步后,更新同步進(jìn)度。
17、進(jìn)一步地,當(dāng)在連接窗口內(nèi)無(wú)法連接到對(duì)應(yīng)的自治區(qū)域時(shí),將所有未發(fā)送的狀態(tài)信息合并,在下一個(gè)連接窗口再次嘗試狀態(tài)同步。
18、一種面向智能電網(wǎng)的集群狀態(tài)同步系統(tǒng),集群包括一個(gè)管理節(jié)點(diǎn)和多個(gè)工作節(jié)點(diǎn),該系統(tǒng)包括:部署在工作節(jié)點(diǎn)上的代理模塊,以及部署在管理節(jié)點(diǎn)上的節(jié)點(diǎn)管理模塊、集群管理模塊、拓?fù)涔芾砟K和狀態(tài)管理模塊;其中:
19、代理模塊負(fù)責(zé)獲取所有節(jié)點(diǎn)之間的網(wǎng)絡(luò)延遲信息;
20、節(jié)點(diǎn)管理模塊負(fù)責(zé)監(jiān)測(cè)所有節(jié)點(diǎn)的存活狀態(tài)和網(wǎng)絡(luò)延遲信息;
21、集群管理模塊負(fù)責(zé)根據(jù)獲取的網(wǎng)絡(luò)延遲信息,將相互之間的網(wǎng)絡(luò)延遲小于預(yù)設(shè)閾值的多個(gè)節(jié)點(diǎn)劃分為同一個(gè)自治區(qū)域;對(duì)于任意兩個(gè)自治區(qū)域,將分屬于這兩個(gè)自治區(qū)域的網(wǎng)絡(luò)延遲最小的兩個(gè)節(jié)點(diǎn)作為種子節(jié)點(diǎn);監(jiān)測(cè)各個(gè)自治區(qū)域之間的連接模式,確定管理節(jié)點(diǎn)所在的自治區(qū)域與其他自治區(qū)域之間的連接窗口;
22、拓?fù)涔芾砟K負(fù)責(zé)在管理節(jié)點(diǎn)、種子節(jié)點(diǎn)以及種子節(jié)點(diǎn)的同自治區(qū)域內(nèi)的鄰居節(jié)點(diǎn)之間建立同步路徑;
23、狀態(tài)管理模塊負(fù)責(zé)各個(gè)自治區(qū)域內(nèi)的種子節(jié)點(diǎn)獲取其鄰居節(jié)點(diǎn)的狀態(tài)信息,在上述連接窗口內(nèi),身為工作節(jié)點(diǎn)的種子節(jié)點(diǎn)將自身及其鄰居節(jié)點(diǎn)的全部狀態(tài)信息沿同步路徑傳輸給管理節(jié)點(diǎn),完成集群狀態(tài)同步,并通過(guò)管理節(jié)點(diǎn)輸出獲取的全部狀態(tài)信息。
24、與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
25、1.針對(duì)智能電網(wǎng)場(chǎng)景中邊緣節(jié)點(diǎn)和小集群(即自治區(qū)域)規(guī)律性斷開(kāi)連接的場(chǎng)景,能夠有效降低故障恢復(fù)開(kāi)銷(xiāo)以提升集群狀態(tài)同步性能;
26、2.當(dāng)待同步的狀態(tài)較多,出現(xiàn)堆積時(shí),本發(fā)明通過(guò)狀態(tài)信息快照和改進(jìn)的容錯(cuò)機(jī)制能夠有效減少維護(hù)同步狀態(tài)時(shí)的空間占用,提升集群狀態(tài)同步性能;
27、3.當(dāng)連接狀態(tài)發(fā)生變化時(shí),使用本發(fā)明所提出的方法能夠快速感知并適應(yīng)新集群拓?fù)浜瓦B接模式,提升集群可用性。