本技術(shù)涉及通信領(lǐng)域,尤其涉及微服務(wù)注冊方法以及相關(guān)設(shè)備。
背景技術(shù):
1、微服務(wù)(microservice)架構(gòu)將大型應(yīng)用程序拆解為多個小型服務(wù),這多個小型服務(wù)中的每個服務(wù)都可以單獨部署、維護和擴展。微服務(wù)注冊與發(fā)現(xiàn)作為微服務(wù)架構(gòu)中的一個重要分支,可以幫助服務(wù)之間互相發(fā)現(xiàn)和通信,從而實現(xiàn)大型應(yīng)用程序的部分或者全部功能。在微服務(wù)架構(gòu)中,如何實現(xiàn)微服務(wù)注冊是極其重要的問題。
2、在一種微服務(wù)注冊方法中,對微服務(wù)是否可用進行檢測,當微服務(wù)處于可用狀態(tài),也即確定微服務(wù)初始化完成時,就向注冊進行微服務(wù)注冊。
3、在這種方法中,一確定微服務(wù)可用就進行微服務(wù)注冊。但微服務(wù)可用是對微服務(wù)的基本要求,微服務(wù)可用并不意味著微服務(wù)能夠提供持續(xù)穩(wěn)定的服務(wù),對于用戶的請求容易報錯,導(dǎo)致微服務(wù)的可靠性降低。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供了一種微服務(wù)注冊方法以及相關(guān)設(shè)備,用于提升微服務(wù)的可靠性和穩(wěn)定性。
2、本技術(shù)第一方面提供了一種微服務(wù)注冊方法,包括:
3、網(wǎng)絡(luò)設(shè)備上運行有待注冊的第一微服務(wù),通過對第一微服務(wù)進行檢測,確定是否對第一微服務(wù)進行注冊。具體來說,網(wǎng)絡(luò)設(shè)備可以獲取測試流量,測試流量用于檢測第一微服務(wù)的服務(wù)狀態(tài),該服務(wù)狀態(tài)指示的是第一微服務(wù)的處理能力。這里所說的處理能力不僅包括第一微服務(wù)是否處于可用狀態(tài),還包括第一微服務(wù)處理測試流量的能力高低。測試流量包括請求的特征和請求所對應(yīng)的響應(yīng),用于模擬第一微服務(wù)在運行過程中可能會使用的流量。使用第一流量對第一微服務(wù)進行檢測,以確定第一微服務(wù)的服務(wù)狀態(tài)。當服務(wù)狀態(tài)指示第一微服務(wù)的處理能力平穩(wěn)時,意味著第一微服務(wù)不僅可用,而且具有良好的性能,可以提供可靠的服務(wù)。因此,可以對第一微服務(wù)進行注冊。
4、本技術(shù)中,在對第一微服務(wù)進行注冊之前,會對第一微服務(wù)的服務(wù)狀態(tài)進行檢測,在服務(wù)狀態(tài)指示第一微服務(wù)的處理能力平穩(wěn)的情況下,才對第一微服務(wù)進行注冊。不僅保證了第一微服務(wù)處于可用狀態(tài),還保證了第一微服務(wù)具有良好的處理能力,確保第一微服務(wù)注冊之后可以提供穩(wěn)定的服務(wù),提升了微服務(wù)的可靠性和穩(wěn)定性。
5、在第一方面的一些可選的實施方式中,網(wǎng)絡(luò)設(shè)備可以確定第一微服務(wù)的服務(wù)狀態(tài)。具體來說,網(wǎng)絡(luò)設(shè)備可以檢測第一微服務(wù)的響應(yīng)狀態(tài)參數(shù),根據(jù)響應(yīng)狀態(tài)參數(shù),確定第一微服務(wù)的服務(wù)狀態(tài)。其中,響應(yīng)狀態(tài)參數(shù)包括每秒請求數(shù)(request?per?second,rps)、錯誤率、或響應(yīng)時延中的至少一項。通常情況下,rps趨向平穩(wěn)、錯誤率越低、或者響應(yīng)時延越低,認為微服務(wù)的服務(wù)狀態(tài)越好。
6、本技術(shù)中,第一微服務(wù)的響應(yīng)狀態(tài)參數(shù)有多種可能,可以從多個維度衡量第一微服務(wù)的服務(wù)狀態(tài),能夠靈活適用于不同的需求,提升了本技術(shù)技術(shù)方案的實用性和靈活性。
7、在第一方面的一些可選的實施方式中,網(wǎng)絡(luò)設(shè)備根據(jù)響應(yīng)狀態(tài)參數(shù),確定服務(wù)狀態(tài)指示第一微服務(wù)的處理能力平穩(wěn),可能會有多種情況。具體來說,可以包括下列中的至少一項:rps滿足預(yù)設(shè)條件、錯誤率小于或等于錯誤率閾值、或響應(yīng)時延小于或等于時延閾值。其中,rps滿足預(yù)設(shè)條件有多種可能,可以是在使用測試流量檢測第一微服務(wù)時段(也即檢測時段)的平均rps在預(yù)設(shè)范圍內(nèi),也可以是平均rps大于第一rps閾值,除此之外,還可能有其他的情況,例如檢測時段rps的最低值大于第二rps閾值但是小于第三rps閾值,或者,檢測時段rps的最低值大于第四rps閾值,具體此處不做限定。前述各個rps閾值可以根據(jù)實際應(yīng)用的需求設(shè)定,本技術(shù)對此不做限制。
8、本技術(shù)中,第一微服務(wù)狀態(tài)的響應(yīng)參數(shù)有多種可能,相應(yīng)地,基于響應(yīng)參數(shù)確定的服務(wù)狀態(tài)也有多種可能,也就有不同維度的標準衡量服務(wù)狀態(tài)所指示的第一微服務(wù)的處理能力是否平穩(wěn)。那么,在實際應(yīng)用時,可以根據(jù)需求設(shè)置相應(yīng)的標準,豐富了本技術(shù)技術(shù)方案的應(yīng)用場景。
9、在第一方面的一些可選的實施方式中,測試流量包括運行第二微服務(wù)時錄制的流量,也就是說,在第二微服務(wù)運行的過程中,對第二微服務(wù)在運行過程調(diào)用和/或被調(diào)用的流量進行錄制。其中,第二微服務(wù)為已經(jīng)注冊的服務(wù),且第一微服務(wù)為第二微服務(wù)的更新版。換言之,第一微服務(wù)和第二微服務(wù)包括有相同的服務(wù),另外,第一微服務(wù)還可以包括第二微服務(wù)所沒有的服務(wù)或者更加優(yōu)化的服務(wù)。
10、本技術(shù)中,測試流量是已經(jīng)注冊的第二微服務(wù)在運行時使用的真實流量,在檢測作為第二微服務(wù)的升級版的第一微服務(wù)時,使用該測試流量,能夠模擬真實的生產(chǎn)應(yīng)用場景,貼近真實應(yīng)用場景。也就更容易覆蓋第一微服務(wù)在實際應(yīng)用中被應(yīng)用的全部服務(wù)分支,避免由于部分服務(wù)分支沒有被覆蓋導(dǎo)致第一微服務(wù)的部分流量阻塞,也即避免了第一微服務(wù)上線后出現(xiàn)部分服務(wù)阻塞,進一步提升了本技術(shù)技術(shù)方案檢測第一微服務(wù)的全面性,以及提升了第一微服務(wù)的順暢度。
11、在第一方面的一些可選的實施方式中,測試流量包括第二微服務(wù)與終端設(shè)備通信所使用的第一流量;和/或,第二微服務(wù)與第一服務(wù)通信所使用的第二流量。其中,第一服務(wù)與第二微服務(wù)提供不同的服務(wù)。第一服務(wù)也可以是微服務(wù),此時第一服務(wù)和第二微服務(wù)可以包含于一個微服務(wù)架構(gòu),也就是說,第一服務(wù)和第二微服務(wù)是同一個大型應(yīng)用程序的不同小型服務(wù)?;蛘撸谝环?wù)和第二微服務(wù)也可以包含于不同的微服務(wù)架構(gòu),也即第一服務(wù)和第二微服務(wù)分別對應(yīng)于不同的應(yīng)用程序。第一服務(wù)和第二微服務(wù)的關(guān)系可以根據(jù)實際應(yīng)用場景確定,本技術(shù)對此不做限定。另外需要說明的是,第一流量也可以理解為外部流量,包括終端設(shè)備在調(diào)用第一微服務(wù)時所發(fā)送的請求的特征,以及第一微服務(wù)響應(yīng)終端設(shè)備的響應(yīng)特征。第二流量可以理解為對外流量,包括第二微服務(wù)在調(diào)用第一服務(wù)時所發(fā)送的請求的特征,以及第一服務(wù)響應(yīng)第二微服務(wù)的響應(yīng)特征。
12、本技術(shù)中,錄制的測試流量有多種可能,包括了第二微服務(wù)與終端設(shè)備通信的第一流量,和/或,第二微服務(wù)與第一服務(wù)通信的第二流量,能夠靈活選擇,進一步豐富了本技術(shù)技術(shù)方案的應(yīng)用場景。
13、在第一方面的一些可選的實施方式中,測試流量有多種可能,相應(yīng)地,使用測試流量檢測第一微服務(wù),也有多種方案。概括來說,包括:網(wǎng)絡(luò)設(shè)備可以通過第一流量,模擬第一微服務(wù)與終端設(shè)備的通信;和/或,控制第一微服務(wù)通過第二流量與仿真系統(tǒng)通信,仿真系統(tǒng)用于模擬第一服務(wù)。前者是從第一微服務(wù)與終端設(shè)備之間通信的角度檢測第一微服務(wù)的服務(wù)狀態(tài),后者是從第一微服務(wù)與其他微服務(wù)之間通信的角度檢測第一微服務(wù)的服務(wù)狀態(tài)。
14、本技術(shù)中,使用測試流量檢測第一微服務(wù)也有多種方案,進一步提升了本技術(shù)技術(shù)方案的靈活性。另外,對于使用第一流量檢測第一微服務(wù)的方案,所關(guān)注的是第一微服務(wù)在面向終端設(shè)備(或者說是面向用戶)的服務(wù)狀態(tài);對于使用第一流量檢測第一微服務(wù)的方案,所關(guān)注的是第一微服務(wù)在面向其他微服務(wù)的服務(wù)狀態(tài),分別從不同的角度對第一微服務(wù)進行檢測。使用第一流量和第二流量檢測第一微服務(wù),對第一微服務(wù)的檢測更加全面,所得到的結(jié)果也更加可靠,進一步保證了第一微服務(wù)在注冊之后的可靠性和穩(wěn)定性。
15、在第一方面的一些可選的實施方式中,測試流量攜帶測試標記,測試標記用于指示測試流量。這也就意味著,測試流量并不會與其他微服務(wù)所使用的流量混淆,檢測第一微服務(wù)的過程并不會影響到真實環(huán)境中其他微服務(wù)的正常運行。
16、本技術(shù)中,通過測試標記區(qū)分真實系統(tǒng)所使用的流量與測試流量,避免檢測第一微服務(wù)對實際應(yīng)用造成影響。
17、第二方面,本技術(shù)提供了一種通信裝置,可以實現(xiàn)上述第一方面、或者第一方面任意一種可能的實現(xiàn)方式所示的方法中網(wǎng)絡(luò)設(shè)備的功能。該裝置包括用于執(zhí)行上述方法的相應(yīng)的單元或模塊。該裝置包括的單元或者模塊可以通過軟件和/或硬件的方式實現(xiàn)。該裝置例如可以為網(wǎng)絡(luò)設(shè)備,也可以是網(wǎng)絡(luò)設(shè)備的模塊(如芯片等),還可以是能實現(xiàn)全部或部分網(wǎng)絡(luò)設(shè)備功能的邏輯節(jié)點、邏輯模塊或軟件。
18、第三方面,本技術(shù)提供了一種通信裝置,包括處理器和存儲器,處理器存儲指令,當存儲在存儲器上的指令在處理器上運行時,實現(xiàn)前述第一方面或者第一方面的任一種可能的實現(xiàn)方式所示的方法。
19、第四方面,本技術(shù)提供了一種計算機可讀存儲介質(zhì),計算機可讀存儲介質(zhì)中保存有指令,當指令在處理器上運行時,實現(xiàn)前述第一方面或者第一方面的任一種可能的實現(xiàn)方式所示的方法。
20、第五方面,本技術(shù)提供了一種計算機程序產(chǎn)品,當計算機程序產(chǎn)品在處理器上執(zhí)行時,實現(xiàn)前述第一方面或者第一方面的任一種可能的實現(xiàn)方式所示的方法。
21、第二方面至第五方面中任一方面所示的有益效果與第一方面或者第一方面任一種可能的實現(xiàn)方式類似,此處不再贅述。