System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專(zhuān)利技術(shù)涉及智能選主技術(shù),尤其涉及基于雙引擎協(xié)同的分布式服務(wù)智能選主方法及系統(tǒng)。
技術(shù)介紹
1、分布式服務(wù)架構(gòu)已成為構(gòu)建高可用、高性能應(yīng)用的普遍選擇。在這種架構(gòu)下,多個(gè)服務(wù)節(jié)點(diǎn)協(xié)同工作,共同完成任務(wù)。為了保證服務(wù)集群的穩(wěn)定性和效率,通常需要一個(gè)主節(jié)點(diǎn)來(lái)協(xié)調(diào)各個(gè)節(jié)點(diǎn)的工作,例如分配任務(wù)、管理數(shù)據(jù)等。因此,如何高效、可靠地選擇主節(jié)點(diǎn)是分布式服務(wù)架構(gòu)中的一個(gè)關(guān)鍵問(wèn)題。
2、現(xiàn)有的主節(jié)點(diǎn)選擇方法主要包括靜態(tài)配置、基于zookeeper的選舉和基于數(shù)據(jù)庫(kù)的選主等。這些方法存在一些缺陷:
3、靜態(tài)配置方式缺乏靈活性,無(wú)法根據(jù)節(jié)點(diǎn)的實(shí)時(shí)狀態(tài)動(dòng)態(tài)調(diào)整主節(jié)點(diǎn),一旦配置的主節(jié)點(diǎn)出現(xiàn)故障,需要手動(dòng)干預(yù),影響服務(wù)的可用性。
4、基于zookeeper的選舉機(jī)制雖然能夠自動(dòng)選主,但其性能開(kāi)銷(xiāo)較大,在節(jié)點(diǎn)數(shù)量較多的情況下,容易出現(xiàn)選舉超時(shí)或腦裂等問(wèn)題,影響集群的穩(wěn)定性。
5、基于數(shù)據(jù)庫(kù)的選主方法依賴(lài)于數(shù)據(jù)庫(kù)的可用性,如果數(shù)據(jù)庫(kù)出現(xiàn)故障,則會(huì)導(dǎo)致選主失敗,同樣影響服務(wù)的正常運(yùn)行。此外,數(shù)據(jù)庫(kù)的讀寫(xiě)操作也會(huì)帶來(lái)一定的性能損耗。
技術(shù)實(shí)現(xiàn)思路
1、本專(zhuān)利技術(shù)實(shí)施例提供基于雙引擎協(xié)同的分布式服務(wù)智能選主方法及系統(tǒng),能夠解決現(xiàn)有技術(shù)中的問(wèn)題。
2、本專(zhuān)利技術(shù)實(shí)施例的第一方面,
3、提供基于雙引擎協(xié)同的分布式服務(wù)智能選主方法,包括:
4、接收分布式服務(wù)節(jié)點(diǎn)的注冊(cè)請(qǐng)求后,采集該節(jié)點(diǎn)的處理能力指數(shù)、網(wǎng)絡(luò)吞吐量、資源利用率形成性能數(shù)據(jù)矩陣,基
5、所述雙層事件監(jiān)聽(tīng)器檢測(cè)到新節(jié)點(diǎn)加入信號(hào)時(shí),提取所述有序集合中已有節(jié)點(diǎn)的分值序列,分析所述分值序列的分布趨勢(shì),基于所述分布趨勢(shì)計(jì)算最優(yōu)分值遞增步長(zhǎng);將所述最優(yōu)分值遞增步長(zhǎng)與新節(jié)點(diǎn)的智能標(biāo)識(shí)碼組合生成目標(biāo)分值,所述目標(biāo)分值隨節(jié)點(diǎn)運(yùn)行時(shí)長(zhǎng)呈衰減趨勢(shì);基于所述目標(biāo)分值對(duì)節(jié)點(diǎn)進(jìn)行優(yōu)先級(jí)排序,并將排序結(jié)果寫(xiě)入所述有序集合,形成動(dòng)態(tài)優(yōu)先級(jí)序列;
6、周期性從所述動(dòng)態(tài)優(yōu)先級(jí)序列中提取最高優(yōu)先級(jí)節(jié)點(diǎn)作為主節(jié)點(diǎn),同時(shí)選取次優(yōu)先級(jí)節(jié)點(diǎn)作為預(yù)熱備用節(jié)點(diǎn);所述雙層事件監(jiān)聽(tīng)器檢測(cè)到主節(jié)點(diǎn)負(fù)載異常或故障信號(hào)時(shí),通過(guò)投票仲裁機(jī)制確認(rèn)故障狀態(tài);確認(rèn)后將所述預(yù)熱備用節(jié)點(diǎn)提升為新主節(jié)點(diǎn),同時(shí)通過(guò)增量狀態(tài)同步機(jī)制完成新、舊主節(jié)點(diǎn)間的數(shù)據(jù)遷移;所述增量狀態(tài)同步機(jī)制基于redis的事務(wù)特性確保主備切換過(guò)程的原子性,并通過(guò)nacos的服務(wù)發(fā)現(xiàn)功能向集群廣播新主節(jié)點(diǎn)信息。
7、將所述節(jié)點(diǎn)評(píng)分函數(shù)的計(jì)算結(jié)果與服務(wù)器物理時(shí)鐘值進(jìn)行加權(quán)組合,生成節(jié)點(diǎn)的智能標(biāo)識(shí)碼;在nacos注冊(cè)中心創(chuàng)建服務(wù)實(shí)例并將所述智能標(biāo)識(shí)碼寫(xiě)入redis存儲(chǔ)引擎的有序集合,同時(shí)激活雙層事件監(jiān)聽(tīng)器,所述雙層事件監(jiān)聽(tīng)器用于捕獲nacos的實(shí)例狀態(tài)變更信號(hào)和redis的數(shù)據(jù)結(jié)構(gòu)變化信號(hào)包括:
8、將所述性能數(shù)據(jù)矩陣輸入節(jié)點(diǎn)評(píng)分函數(shù)進(jìn)行計(jì)算,輸出節(jié)點(diǎn)評(píng)分結(jié)果;采集服務(wù)器物理時(shí)鐘值,將所述節(jié)點(diǎn)評(píng)分結(jié)果與所述服務(wù)器物理時(shí)鐘值進(jìn)行加權(quán)組合運(yùn)算,生成節(jié)點(diǎn)的智能標(biāo)識(shí)碼,所述節(jié)點(diǎn)的智能標(biāo)識(shí)碼包含性能評(píng)分部分和時(shí)序標(biāo)識(shí)部分;
9、在nacos注冊(cè)中心創(chuàng)建分布式服務(wù)實(shí)例,將所述節(jié)點(diǎn)的智能標(biāo)識(shí)碼寫(xiě)入所述分布式服務(wù)實(shí)例的擴(kuò)展屬性字段;同步將所述節(jié)點(diǎn)的智能標(biāo)識(shí)碼寫(xiě)入redis存儲(chǔ)引擎的有序集合,所述有序集合采用所述節(jié)點(diǎn)的智能標(biāo)識(shí)碼的性能評(píng)分部分作為排序依據(jù);所述有序集合中的節(jié)點(diǎn)的智能標(biāo)識(shí)碼按照性能評(píng)分從高到低的順序進(jìn)行排列;
10、激活雙層事件監(jiān)聽(tīng)器,所述雙層事件監(jiān)聽(tīng)器包括nacos實(shí)例監(jiān)聽(tīng)層和redis數(shù)據(jù)監(jiān)聽(tīng)層;所述nacos實(shí)例監(jiān)聽(tīng)層通過(guò)實(shí)例訂閱機(jī)制捕獲服務(wù)實(shí)例的狀態(tài)變更信號(hào);所述redis數(shù)據(jù)監(jiān)聽(tīng)層通過(guò)鍵空間通知機(jī)制捕獲有序集合的數(shù)據(jù)結(jié)構(gòu)變化信號(hào)。
11、所述雙層事件監(jiān)聽(tīng)器檢測(cè)到新節(jié)點(diǎn)加入信號(hào)時(shí),提取所述有序集合中已有節(jié)點(diǎn)的分值序列,分析所述分值序列的分布趨勢(shì),根據(jù)分布趨勢(shì)計(jì)算最優(yōu)分值遞增步長(zhǎng)包括:
12、所述雙層事件監(jiān)聽(tīng)器將捕獲的狀態(tài)變更信號(hào)和數(shù)據(jù)變化信號(hào)整合為統(tǒng)一的事件消息流;當(dāng)所述事件消息流中包含新節(jié)點(diǎn)加入信號(hào)時(shí),從redis存儲(chǔ)引擎的有序集合中讀取全部已有節(jié)點(diǎn)的標(biāo)識(shí)信息和對(duì)應(yīng)分值,提取所述對(duì)應(yīng)分值構(gòu)建有序分值序列;計(jì)算所述有序分值序列中相鄰分值的差值形成步長(zhǎng)樣本集;對(duì)所述步長(zhǎng)樣本集進(jìn)行正態(tài)性檢驗(yàn),獲取所述步長(zhǎng)樣本集的概率分布特征;
13、基于所述概率分布特征選擇最優(yōu)步長(zhǎng)計(jì)算策略:當(dāng)所述步長(zhǎng)樣本集的概率分布特征滿(mǎn)足正態(tài)分布要求時(shí),采用最大似然估計(jì)法計(jì)算基準(zhǔn)步長(zhǎng)值;當(dāng)所述步長(zhǎng)樣本集的概率分布特征不滿(mǎn)足正態(tài)分布要求時(shí),采用核密度估計(jì)方法計(jì)算基準(zhǔn)步長(zhǎng)值;將計(jì)算得到的基準(zhǔn)步長(zhǎng)值輸入自適應(yīng)調(diào)節(jié)模塊;
14、所述自適應(yīng)調(diào)節(jié)模塊首先獲取集群當(dāng)前的活躍節(jié)點(diǎn)數(shù)量,根據(jù)所述活躍節(jié)點(diǎn)數(shù)量選取容量系數(shù);將所述基準(zhǔn)步長(zhǎng)值與對(duì)應(yīng)的容量系數(shù)相乘得到容量調(diào)整步長(zhǎng);
15、采集新加入節(jié)點(diǎn)的性能指標(biāo),同時(shí)計(jì)算集群現(xiàn)有節(jié)點(diǎn)的平均性能水平;將所述新加入節(jié)點(diǎn)的性能指標(biāo)與所述平均性能水平進(jìn)行對(duì)比得到性能比值;根據(jù)所述性能比值計(jì)算性能系數(shù);將所述容量調(diào)整步長(zhǎng)與所述性能系數(shù)相乘得到性能修正步長(zhǎng);
16、提取所述有序分值序列中每個(gè)分值的生成時(shí)間戳,計(jì)算各分值距當(dāng)前時(shí)刻的時(shí)間間隔;將所述時(shí)間間隔代入指數(shù)衰減函數(shù)計(jì)算時(shí)間權(quán)重,所述指數(shù)衰減函數(shù)的衰減率根據(jù)系統(tǒng)負(fù)載動(dòng)態(tài)調(diào)整;將所述性能修正步長(zhǎng)與所述時(shí)間權(quán)重進(jìn)行加權(quán)計(jì)算得到時(shí)序加權(quán)步長(zhǎng);
17、分析歷史分值調(diào)整記錄,提取分值調(diào)整的頻率特征和幅度特征,基于所述頻率特征確定步長(zhǎng)下限閾值;預(yù)測(cè)節(jié)點(diǎn)數(shù)量的增長(zhǎng)趨勢(shì),根據(jù)所述增長(zhǎng)趨勢(shì)確定步長(zhǎng)上限閾值;將所述時(shí)序加權(quán)步長(zhǎng)限定在所述下限閾值和所述上限閾值之間,得到最終的最優(yōu)分值遞增步長(zhǎng)。
18、將所述最優(yōu)分值遞增步長(zhǎng)與新節(jié)點(diǎn)的智能標(biāo)識(shí)碼組合生成目標(biāo)分值,所述目標(biāo)分值隨節(jié)點(diǎn)運(yùn)行時(shí)長(zhǎng)呈衰減趨勢(shì);基于所述目標(biāo)分值對(duì)節(jié)點(diǎn)進(jìn)行優(yōu)先級(jí)排序,并將排序結(jié)果寫(xiě)入所述有序集合,形成動(dòng)態(tài)優(yōu)先級(jí)序列包括:
19、所述最優(yōu)分值遞增步長(zhǎng)用于表征相鄰節(jié)點(diǎn)間的優(yōu)先級(jí)間距;解析新節(jié)點(diǎn)的智能標(biāo)識(shí)碼得到性能評(píng)分部分和節(jié)點(diǎn)標(biāo)識(shí)部分;將所述性能評(píng)分部分進(jìn)行歸一化處理得到性能權(quán)重系數(shù);
20、將所述最優(yōu)分值遞增步長(zhǎng)與所述性能權(quán)重系數(shù)相乘得到基準(zhǔn)分值;將所述基準(zhǔn)分值與所述節(jié)點(diǎn)標(biāo)識(shí)部分通過(guò)非線(xiàn)性映射函數(shù)組合,生成節(jié)點(diǎn)初始目標(biāo)分值;所述非線(xiàn)性映射函數(shù)確保不同節(jié)點(diǎn)的目標(biāo)分值全局唯一且單調(diào)遞增;
21、從節(jié)點(diǎn)狀態(tài)監(jiān)控模塊獲取節(jié)點(diǎn)的運(yùn)行時(shí)長(zhǎng)的計(jì)數(shù)值;基于所述運(yùn)行時(shí)長(zhǎng)的計(jì)數(shù)值計(jì)算時(shí)間衰減因子,所述時(shí)間衰減因子采用分段指數(shù)函數(shù):當(dāng)運(yùn)行時(shí)長(zhǎng)小于一小時(shí),時(shí)衰減速率本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.基于雙引擎協(xié)同的分布式服務(wù)智能選主方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述節(jié)點(diǎn)評(píng)分函數(shù)的計(jì)算結(jié)果與服務(wù)器物理時(shí)鐘值進(jìn)行加權(quán)組合,生成節(jié)點(diǎn)的智能標(biāo)識(shí)碼;在Nacos注冊(cè)中心創(chuàng)建服務(wù)實(shí)例并將所述智能標(biāo)識(shí)碼寫(xiě)入Redis存儲(chǔ)引擎的有序集合,同時(shí)激活雙層事件監(jiān)聽(tīng)器,所述雙層事件監(jiān)聽(tīng)器用于捕獲Nacos的實(shí)例狀態(tài)變更信號(hào)和Redis的數(shù)據(jù)結(jié)構(gòu)變化信號(hào)包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述雙層事件監(jiān)聽(tīng)器檢測(cè)到新節(jié)點(diǎn)加入信號(hào)時(shí),提取所述有序集合中已有節(jié)點(diǎn)的分值序列,分析所述分值序列的分布趨勢(shì),根據(jù)分布趨勢(shì)計(jì)算最優(yōu)分值遞增步長(zhǎng)包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述最優(yōu)分值遞增步長(zhǎng)與新節(jié)點(diǎn)的智能標(biāo)識(shí)碼組合生成目標(biāo)分值,所述目標(biāo)分值隨節(jié)點(diǎn)運(yùn)行時(shí)長(zhǎng)呈衰減趨勢(shì);基于所述目標(biāo)分值對(duì)節(jié)點(diǎn)進(jìn)行優(yōu)先級(jí)排序,并將排序結(jié)果寫(xiě)入所述有序集合,形成動(dòng)態(tài)優(yōu)先級(jí)序列包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,周期性從所述動(dòng)態(tài)優(yōu)先級(jí)序列中提取最高優(yōu)先級(jí)節(jié)點(diǎn)作為主節(jié)點(diǎn),同時(shí)選取次優(yōu)先級(jí)節(jié)點(diǎn)作為預(yù)熱備用節(jié)
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述雙層事件監(jiān)聽(tīng)器檢測(cè)到主節(jié)點(diǎn)負(fù)載異常或故障信號(hào)時(shí),通過(guò)投票仲裁機(jī)制確認(rèn)故障狀態(tài)包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,確認(rèn)后將所述預(yù)熱備用節(jié)點(diǎn)提升為新主節(jié)點(diǎn),同時(shí)通過(guò)增量狀態(tài)同步機(jī)制完成新、舊主節(jié)點(diǎn)間的數(shù)據(jù)遷移;所述增量狀態(tài)同步機(jī)制基于Redis的事務(wù)特性確保主備切換過(guò)程的原子性,并通過(guò)Nacos的服務(wù)發(fā)現(xiàn)功能向集群廣播新主節(jié)點(diǎn)信息包括:
8.基于雙引擎協(xié)同的分布式服務(wù)智能選主系統(tǒng),用于實(shí)現(xiàn)前述權(quán)利要求1-7中任一項(xiàng)所述的方法,其特征在于,包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序指令,其特征在于,所述計(jì)算機(jī)程序指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至7中任意一項(xiàng)所述的方法。
...【技術(shù)特征摘要】
1.基于雙引擎協(xié)同的分布式服務(wù)智能選主方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述節(jié)點(diǎn)評(píng)分函數(shù)的計(jì)算結(jié)果與服務(wù)器物理時(shí)鐘值進(jìn)行加權(quán)組合,生成節(jié)點(diǎn)的智能標(biāo)識(shí)碼;在nacos注冊(cè)中心創(chuàng)建服務(wù)實(shí)例并將所述智能標(biāo)識(shí)碼寫(xiě)入redis存儲(chǔ)引擎的有序集合,同時(shí)激活雙層事件監(jiān)聽(tīng)器,所述雙層事件監(jiān)聽(tīng)器用于捕獲nacos的實(shí)例狀態(tài)變更信號(hào)和redis的數(shù)據(jù)結(jié)構(gòu)變化信號(hào)包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述雙層事件監(jiān)聽(tīng)器檢測(cè)到新節(jié)點(diǎn)加入信號(hào)時(shí),提取所述有序集合中已有節(jié)點(diǎn)的分值序列,分析所述分值序列的分布趨勢(shì),根據(jù)分布趨勢(shì)計(jì)算最優(yōu)分值遞增步長(zhǎng)包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述最優(yōu)分值遞增步長(zhǎng)與新節(jié)點(diǎn)的智能標(biāo)識(shí)碼組合生成目標(biāo)分值,所述目標(biāo)分值隨節(jié)點(diǎn)運(yùn)行時(shí)長(zhǎng)呈衰減趨勢(shì);基于所述目標(biāo)分值對(duì)節(jié)點(diǎn)進(jìn)行優(yōu)先級(jí)排序,并將排序結(jié)果寫(xiě)入所述有序集合,形成動(dòng)態(tài)優(yōu)先級(jí)序列包括:
5.根據(jù)權(quán)利要...
【專(zhuān)利技術(shù)屬性】
技術(shù)研發(fā)人員:高海玲,高經(jīng)郡,周波,
申請(qǐng)(專(zhuān)利權(quán))人:北京科杰科技有限公司,
類(lèi)型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。