本發(fā)明涉及微服務(wù)架構(gòu),具體為一種基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用高可靠?jī)?yōu)化方法及系統(tǒng)。
背景技術(shù):
1、隨著電力行業(yè)數(shù)字化轉(zhuǎn)型的加速,國(guó)網(wǎng)云作為關(guān)鍵支撐平臺(tái),其穩(wěn)定性和可靠性對(duì)于保障電力供應(yīng)的連續(xù)性和安全性至關(guān)重要。數(shù)字化轉(zhuǎn)型要求國(guó)網(wǎng)云系統(tǒng)具備高效、穩(wěn)定、可擴(kuò)展的能力,以應(yīng)對(duì)日益復(fù)雜的業(yè)務(wù)需求。這包括在硬件、軟件、網(wǎng)絡(luò)多個(gè)層面實(shí)現(xiàn)冗余、容錯(cuò)、備份機(jī)制,以確保在單點(diǎn)故障或異常情況下能夠迅速恢復(fù)服務(wù)。
2、隨著信息技術(shù)的飛速發(fā)展,微服務(wù)架構(gòu)在現(xiàn)代軟件開(kāi)發(fā)中得到了廣泛應(yīng)用。微服務(wù)架構(gòu)通過(guò)將單體應(yīng)用拆分為多個(gè)獨(dú)立的服務(wù)模塊,每個(gè)模塊獨(dú)立部署和管理,從而提高了系統(tǒng)的靈活性和可擴(kuò)展性。近年來(lái),云計(jì)算技術(shù)的進(jìn)步進(jìn)一步推動(dòng)了微服務(wù)架構(gòu)的普及,使得企業(yè)能夠靈活地部署和管理復(fù)雜的應(yīng)用系統(tǒng)。kubernetes(k8s)作為容器編排工具,結(jié)合docker容器技術(shù),成為實(shí)現(xiàn)微服務(wù)架構(gòu)的主流解決方案。此外,istio作為服務(wù)網(wǎng)格技術(shù),提供了流量管理、服務(wù)發(fā)現(xiàn)和故障處理等高級(jí)功能,大大增強(qiáng)了微服務(wù)架構(gòu)的穩(wěn)定性和可控性。
3、然而,現(xiàn)有的微服務(wù)架構(gòu)在實(shí)際應(yīng)用中仍然面臨一些挑戰(zhàn)。首先,傳統(tǒng)的負(fù)載均衡策略難以應(yīng)對(duì)復(fù)雜的業(yè)務(wù)流量,常常導(dǎo)致資源分配不均,影響系統(tǒng)性能。其次,缺乏有效的流量控制和熔斷機(jī)制,在高并發(fā)或異常流量情況下,系統(tǒng)容易出現(xiàn)過(guò)載甚至崩潰。此外,現(xiàn)有的關(guān)聯(lián)規(guī)則挖掘方法在大數(shù)據(jù)環(huán)境下效率較低,難以實(shí)時(shí)提供有價(jià)值的業(yè)務(wù)洞察。盡管已有一些解決方案嘗試通過(guò)改進(jìn)負(fù)載均衡算法和引入熔斷機(jī)制來(lái)緩解這些問(wèn)題,但仍未能徹底解決微服務(wù)架構(gòu)中存在的高可靠性和高效能管理難題。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述存在的問(wèn)題,提出了本發(fā)明。
2、因此,本發(fā)明解決的技術(shù)問(wèn)題是:現(xiàn)有技術(shù)項(xiàng)目高度依賴(lài)于kubernetes、docker開(kāi)源技術(shù),以及自身的技術(shù)解決方案。一旦這些技術(shù)或解決方案出現(xiàn)安全漏洞、兼容性問(wèn)題或更新迭代滯后,會(huì)對(duì)整個(gè)云平臺(tái)造成重大影響。傳統(tǒng)負(fù)載均衡策略難以應(yīng)對(duì)復(fù)雜的業(yè)務(wù)流量,常導(dǎo)致資源分配不均。現(xiàn)有系統(tǒng)在高并發(fā)或異常流量情況下,容易出現(xiàn)過(guò)載甚至崩潰。
3、為解決上述技術(shù)問(wèn)題,本發(fā)明提供如下技術(shù)方案:一種基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用高可靠?jī)?yōu)化方法,包括:建立高可靠云環(huán)境,部署k8s、docker,配置網(wǎng)格能力服務(wù)。
4、初始化網(wǎng)格服務(wù),通過(guò)istioctl命令,設(shè)置路由策略和流量控制規(guī)則。
5、采集前端瀏覽器數(shù)據(jù)并存儲(chǔ),生成數(shù)據(jù)標(biāo)記。
6、使用apriori關(guān)聯(lián)規(guī)則算法進(jìn)行數(shù)據(jù)洞察,實(shí)現(xiàn)業(yè)務(wù)流量控制。
7、作為本發(fā)明所述的基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用高可靠?jī)?yōu)化方法的一種優(yōu)選方案,其中:所述建立高可靠云環(huán)境,部署k8s、docker包括在電力業(yè)務(wù)系統(tǒng)的多云集群服務(wù)中安裝k8s,在k8s集群中安裝istio工具,初始化istio控制面板的路由策略、流量控制,通過(guò)envoy組件實(shí)現(xiàn)應(yīng)用服務(wù)發(fā)現(xiàn),形成了應(yīng)用服務(wù)的網(wǎng)格。部署docker并使用cilium插件,配置高性能容器網(wǎng)絡(luò)。
8、作為本發(fā)明所述的基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用高可靠?jī)?yōu)化方法的一種優(yōu)選方案,其中:所述配置網(wǎng)格能力服務(wù)包括,搭建微服務(wù)環(huán)境,在多云平臺(tái)上搭建kubernetes集群,使用kubernetes工具創(chuàng)建并配置多云集群環(huán)境,通過(guò)helm包管理工具在kubernetes集群中安裝istio軟件,作為服務(wù)網(wǎng)格的基礎(chǔ)組件。
9、對(duì)istio控制平面進(jìn)行配置,初始化istiod組件及ingress?gateway,形成完整的服務(wù)治理架構(gòu)。
10、使用虛擬服務(wù)和目標(biāo)規(guī)則定義服務(wù)版本間的流量分配規(guī)則,在istio中配置負(fù)載均衡策略,支持最小連接數(shù)算法,將請(qǐng)求分配到當(dāng)前活動(dòng)連接數(shù)最少的服務(wù)實(shí)例,實(shí)現(xiàn)流量的均勻分配,表示為:
11、
12、其中,ci表示第i個(gè)服務(wù)實(shí)例的當(dāng)前連接數(shù)。
13、配置kiali組件,通過(guò)kiali展示服務(wù)之間的通信關(guān)系、負(fù)載均衡狀態(tài)及健康狀況,進(jìn)行實(shí)時(shí)監(jiān)控和故障檢測(cè)。
14、作為本發(fā)明所述的基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用高可靠?jī)?yōu)化方法的一種優(yōu)選方案,其中:所述通過(guò)istioctl命令,設(shè)置路由策略和流量控制規(guī)則包括根據(jù)請(qǐng)求類(lèi)型的路由策略、基于請(qǐng)求優(yōu)先級(jí)的路由策略、基于流量峰值的限流策略和基于資源使用率的熔斷策略。
15、根據(jù)請(qǐng)求類(lèi)型的路由策略包括將請(qǐng)求標(biāo)頭中的類(lèi)型信息作為匹配條件,將讀請(qǐng)求路由至只讀實(shí)例,將寫(xiě)請(qǐng)求路由至只寫(xiě)實(shí)例。
16、基于請(qǐng)求優(yōu)先級(jí)的路由策略包括設(shè)定請(qǐng)求標(biāo)頭中的優(yōu)先級(jí)信息,當(dāng)優(yōu)先級(jí)高于優(yōu)先級(jí)閾值時(shí),將請(qǐng)求路由至高優(yōu)先級(jí)實(shí)例組。否則,路由至普通實(shí)例組。
17、優(yōu)先級(jí)閾值通過(guò)計(jì)算得到,首先構(gòu)建基礎(chǔ)優(yōu)先級(jí)閾值公式,歸一化函數(shù)將請(qǐng)求優(yōu)先級(jí)標(biāo)準(zhǔn)化,指數(shù)函數(shù)描述請(qǐng)求優(yōu)先級(jí)的增長(zhǎng),表示為:
18、
19、引入請(qǐng)求復(fù)雜性、系統(tǒng)負(fù)載影響和歷史數(shù)據(jù)權(quán)重,優(yōu)化基礎(chǔ)優(yōu)先級(jí)閾值,表示為:
20、
21、其中,popt表示優(yōu)化后的請(qǐng)求優(yōu)先級(jí)閾值,x表示當(dāng)前請(qǐng)求的原始優(yōu)先級(jí)值,min(x)表示所有請(qǐng)求中最低的優(yōu)先級(jí)值,max(x)表示所有請(qǐng)求中最高的優(yōu)先級(jí)值,c表示請(qǐng)求的復(fù)雜性系數(shù),l表示系統(tǒng)當(dāng)前負(fù)載系數(shù),e-l表示負(fù)載系數(shù)的指數(shù)衰減,表示歷史請(qǐng)求的加權(quán)優(yōu)先級(jí)和,表示歷史請(qǐng)求的加權(quán)總和,hi表示歷史請(qǐng)求的權(quán)重,pi表示歷史請(qǐng)求的優(yōu)先級(jí)值,λ表示優(yōu)先級(jí)增長(zhǎng)速率。
22、基于流量峰值的限流策略包括設(shè)定流量閾值。當(dāng)實(shí)時(shí)流量超過(guò)流量閾值時(shí),自動(dòng)觸發(fā)限流,將超過(guò)部分的請(qǐng)求延遲處理。當(dāng)實(shí)時(shí)流量未超過(guò)流量閾值時(shí),取消限流。
23、基于資源使用率的熔斷策略包括設(shè)定cpu和內(nèi)存使用率監(jiān)控指標(biāo),當(dāng)cpu和內(nèi)存任一一個(gè)使用率超過(guò)對(duì)應(yīng)的閾值時(shí),自動(dòng)觸發(fā)熔斷,將新請(qǐng)求路由至其他負(fù)載輕的實(shí)例。當(dāng)cpu和內(nèi)存使用率均未超過(guò)對(duì)應(yīng)的閾值時(shí),取消熔斷。
24、作為本發(fā)明所述的基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用高可靠?jī)?yōu)化方法的一種優(yōu)選方案,其中:所述采集前端瀏覽器數(shù)據(jù)并存儲(chǔ),生成數(shù)據(jù)標(biāo)記包括,從前端瀏覽器采集數(shù)據(jù),包括cpu使用率cpu_usage、內(nèi)存使用率memory_usage、網(wǎng)絡(luò)帶寬使用率network_bandwidth、用戶(hù)請(qǐng)求頻率request_frequency和請(qǐng)求響應(yīng)時(shí)間response_time。
25、對(duì)采集到的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,表示為:
26、
27、其中,x表示原始數(shù)據(jù),μ表示數(shù)據(jù)的均值,σ表示數(shù)據(jù)的標(biāo)準(zhǔn)差,xnorm表示標(biāo)準(zhǔn)化后的數(shù)據(jù)。
28、綜合數(shù)據(jù)進(jìn)行聚類(lèi),使用多維空間中的距離度量?jī)?yōu)化聚類(lèi)結(jié)果,表示為:
29、
30、其中,dij表示數(shù)據(jù)點(diǎn)i和j之間的歐氏距離,xik表示數(shù)據(jù)點(diǎn)i在第k個(gè)維度上的值,xjk表示數(shù)據(jù)點(diǎn)j在第k個(gè)維度上的值。
31、使用主成分分析進(jìn)行數(shù)據(jù)降維,減少數(shù)據(jù)的維度,提高聚類(lèi)算法的效率和準(zhǔn)確性,pca降維表示為:
32、z=xw
33、其中,z表示降維后的數(shù)據(jù),x表示原始數(shù)據(jù)矩陣,w表示特征向量矩陣。
34、先使用層次聚類(lèi)方法對(duì)數(shù)據(jù)進(jìn)行初步聚類(lèi),得到不同層次的聚類(lèi)結(jié)果,再選擇層次較深的簇作為初始的k個(gè)聚類(lèi)中心,進(jìn)一步優(yōu)化k-means聚類(lèi)過(guò)程。
35、層次聚類(lèi)方法為使用最小距離、最大距離、平均距離鏈接方法計(jì)算兩個(gè)簇之間的距離,將最近的兩個(gè)簇合并,形成新的簇,重復(fù)該過(guò)程直到所有數(shù)據(jù)點(diǎn)都聚為一個(gè)簇。
36、使用層次聚類(lèi)的結(jié)果選擇初始聚類(lèi)中心,進(jìn)行k-means迭代優(yōu)化,計(jì)算數(shù)據(jù)點(diǎn)到質(zhì)心的距離,并將數(shù)據(jù)點(diǎn)分配到最近的質(zhì)心對(duì)應(yīng)的簇中,更新質(zhì)心位置,直到質(zhì)心不再變化,表示為:
37、
38、其中,μk表示第k個(gè)簇的質(zhì)心,∣ck∣表示第k個(gè)簇中的數(shù)據(jù)點(diǎn)數(shù)量,xi表示屬于第k個(gè)簇的數(shù)據(jù)點(diǎn)。
39、作為本發(fā)明所述的基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用高可靠?jī)?yōu)化方法的一種優(yōu)選方案,其中:所述生成數(shù)據(jù)標(biāo)記還包括,為實(shí)現(xiàn)智能標(biāo)記調(diào)整,使用基于圖神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行優(yōu)化。將數(shù)據(jù)點(diǎn)視為圖中的節(jié)點(diǎn),節(jié)點(diǎn)之間的關(guān)系作為圖中的邊,充分利用數(shù)據(jù)之間的復(fù)雜關(guān)系進(jìn)行優(yōu)化。
40、每個(gè)節(jié)點(diǎn)包含多種數(shù)據(jù),使用gnn中的消息傳遞機(jī)制,將鄰居節(jié)點(diǎn)的信息傳遞到當(dāng)前節(jié)點(diǎn),進(jìn)行特征更新,傳遞公式表示為:
41、
42、其中,表示節(jié)點(diǎn)v在第k層的特征表示,表示節(jié)點(diǎn)v的鄰居節(jié)點(diǎn)集合,w(k)表示第k層的權(quán)重矩陣,b(k)表示第k層的偏置項(xiàng),σ表示激活函數(shù)。
43、通過(guò)多層消息傳遞和特征更新,聚合鄰居節(jié)點(diǎn)的信息,得到每個(gè)節(jié)點(diǎn)的最終特征表示,聚合公式表示為:
44、
45、其中,hv表示節(jié)點(diǎn)v的最終特征表示,aggregate(`)表示聚合函數(shù)。
46、使用聚合后的節(jié)點(diǎn)特征表示,通過(guò)一個(gè)全連接層進(jìn)行分類(lèi),將節(jié)點(diǎn)標(biāo)記為不同的類(lèi)別,表示為:
47、y=softmax(wfhv+bf)
48、其中,y表示節(jié)點(diǎn)的分類(lèi)結(jié)果,wf表示全連接層的權(quán)重矩陣,bf表示全連接層的偏置項(xiàng),softmax(`)表示歸一化函數(shù),將輸出轉(zhuǎn)化為概率分布。
49、分類(lèi)結(jié)果y包含熔斷、限流和正常情況,當(dāng)y≥0.8時(shí),表示檢測(cè)到極高的風(fēng)險(xiǎn),判斷為熔斷情況,立即中斷服務(wù)。0.5≤y<0.80時(shí),表示檢測(cè)到較高的風(fēng)險(xiǎn),判斷為限流情況,限制流量。當(dāng)y<0.5時(shí),表示系統(tǒng)運(yùn)行正常,無(wú)需采取額外措施。
50、作為本發(fā)明所述的基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用高可靠?jī)?yōu)化方法的一種優(yōu)選方案,其中:所述使用apriori關(guān)聯(lián)規(guī)則算法進(jìn)行數(shù)據(jù)洞察,實(shí)現(xiàn)業(yè)務(wù)流量控制包括,使用分類(lèi)結(jié)果y作為apriori算法的輸入數(shù)據(jù),包括三種狀態(tài):熔斷、限流和正常。
51、使用apriori算法從數(shù)據(jù)集中生成頻繁項(xiàng)集,頻繁項(xiàng)集是指在數(shù)據(jù)集中頻繁出現(xiàn)的項(xiàng)集,滿(mǎn)足一定的支持度閾值,支持度計(jì)算公式表示為:
52、
53、其中,support(a)表示項(xiàng)集a的支持度,count(a)表示項(xiàng)集a在數(shù)據(jù)集中出現(xiàn)的次數(shù),n表示數(shù)據(jù)集中的總事務(wù)數(shù)。
54、從頻繁項(xiàng)集中生成關(guān)聯(lián)規(guī)則,包括置信度、提升度,關(guān)聯(lián)規(guī)則的形式為表示若項(xiàng)集a出現(xiàn),則項(xiàng)集b也很可能出現(xiàn)。
55、置信度計(jì)算公式表示為:
56、
57、其中,表示關(guān)聯(lián)規(guī)則的置信度,support(a∪b)表示項(xiàng)集a和b同時(shí)出現(xiàn)的支持度。
58、提升度計(jì)算公式表示為:
59、
60、其中,表示關(guān)聯(lián)規(guī)則的提升度,衡量a和b之間的關(guān)聯(lián)強(qiáng)度。
61、根據(jù)生成的關(guān)聯(lián)規(guī)則,進(jìn)行數(shù)據(jù)洞察,識(shí)別關(guān)鍵的業(yè)務(wù)行為模式和流量特征,結(jié)合分類(lèi)結(jié)果y,實(shí)現(xiàn)業(yè)務(wù)流量控制。
62、一種基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用高可靠?jī)?yōu)化系統(tǒng),其特征在于:包括,
63、搭建環(huán)境模塊,建立高可靠云環(huán)境,部署k8s、docker,配置網(wǎng)格能力服務(wù)。
64、設(shè)置規(guī)則模塊,初始化網(wǎng)格服務(wù),通過(guò)istioctl命令,設(shè)置路由策略和流量控制規(guī)則。
65、生成數(shù)據(jù)標(biāo)記模塊,采集前端瀏覽器數(shù)據(jù)并存儲(chǔ),生成數(shù)據(jù)標(biāo)記。
66、數(shù)據(jù)洞察模塊,使用apriori關(guān)聯(lián)規(guī)則算法進(jìn)行數(shù)據(jù)洞察,實(shí)現(xiàn)業(yè)務(wù)流量控制。
67、一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如上所述的方法的步驟。
68、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的方法的步驟。
69、本發(fā)明的有益效果:提升了系統(tǒng)可靠性與性能。通過(guò)適配高可靠性的云服務(wù)器、操作系統(tǒng)、數(shù)據(jù)庫(kù)以及國(guó)產(chǎn)芯片基礎(chǔ)軟硬件,減少故障,提高業(yè)務(wù)的連續(xù)性和可用性,滿(mǎn)足大規(guī)模數(shù)據(jù)處理和高并發(fā)訪問(wèn)的需求。提升技術(shù)自主可控水平,保障國(guó)家信息安全,并推動(dòng)相關(guān)產(chǎn)業(yè)鏈的發(fā)展。采用先進(jìn)的數(shù)據(jù)預(yù)處理技術(shù)和層次聚類(lèi)方法,對(duì)前端數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理和聚類(lèi)分析。結(jié)合主成分分析(pca)和圖神經(jīng)網(wǎng)絡(luò)(gnn)優(yōu)化,生成了高精度的數(shù)據(jù)標(biāo)記。此步驟實(shí)現(xiàn)了對(duì)用戶(hù)行為和系統(tǒng)狀態(tài)的精確監(jiān)控和分析,為后續(xù)的業(yè)務(wù)流量控制提供了基礎(chǔ)數(shù)據(jù)支持。通過(guò)apriori算法從數(shù)據(jù)集中提取頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則,結(jié)合前一步的數(shù)據(jù)標(biāo)記結(jié)果,識(shí)別出關(guān)鍵的業(yè)務(wù)行為模式。利用這些規(guī)則進(jìn)行實(shí)時(shí)流量控制,通過(guò)熔斷、限流和智能路由策略,實(shí)現(xiàn)了業(yè)務(wù)流量的動(dòng)態(tài)調(diào)節(jié)和優(yōu)化,確保系統(tǒng)在高負(fù)載和異常情況下的穩(wěn)定運(yùn)行。