本技術(shù)涉及微服務(wù),尤其涉及一種微服務(wù)調(diào)用方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、微服務(wù)是指采用多個(gè)較小、松散耦合的服務(wù)組成的應(yīng)用程序?;谖⒎?wù)中各服務(wù)間松散耦合的特點(diǎn),微服務(wù)具有單獨(dú)部署、代碼易于更新、靈活配置等優(yōu)勢,使得微服務(wù)可以適用于服務(wù)眾多、調(diào)用關(guān)系復(fù)雜、運(yùn)行框架多樣化的環(huán)境中,如分布式系統(tǒng)中的被廣泛應(yīng)用于分布式系統(tǒng)中。通過調(diào)用微服務(wù)可以實(shí)現(xiàn)不同類型的服務(wù)。
2、現(xiàn)有的微服務(wù)調(diào)用方法,如采用微服務(wù)中負(fù)載均衡的調(diào)用方法,可以采用消費(fèi)者服務(wù)、提供者服務(wù)的思想,以注解注入反方式提供調(diào)用接口服務(wù)。
3、然而,由于微服務(wù)中的接口數(shù)量眾多、集群環(huán)境復(fù)雜,上述微服務(wù)間的調(diào)用方法存在無法準(zhǔn)確尋址到微服務(wù)集群環(huán)境或調(diào)用錯(cuò)誤微服務(wù)的情況,從而無法實(shí)現(xiàn)微服務(wù)調(diào)用,使得微服務(wù)的調(diào)用效率較低。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種微服務(wù)調(diào)用方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì),用以解決現(xiàn)有技術(shù)中微服務(wù)調(diào)用效率較低的問題。
2、第一方面,本技術(shù)提供一種微服務(wù)調(diào)用方法,包括:
3、響應(yīng)于接收到每個(gè)微服務(wù)發(fā)送的配置信息,根據(jù)每個(gè)所述微服務(wù)的配置信息配置對應(yīng)的數(shù)據(jù)庫,并向每個(gè)所述微服務(wù)發(fā)送對應(yīng)的數(shù)據(jù)庫;所述數(shù)據(jù)庫包括交易配置數(shù)據(jù)庫、全局尋址視圖數(shù)據(jù)庫以及消費(fèi)交易碼數(shù)據(jù)庫中的至少一種,所述消費(fèi)交易碼數(shù)據(jù)庫包括每個(gè)所述微服務(wù)的消費(fèi)交易碼列表;
4、響應(yīng)于接收到微服務(wù)調(diào)用請求,確定所述微服務(wù)調(diào)用請求對應(yīng)的調(diào)用信息;其中,所述調(diào)用信息包括第一微服務(wù)標(biāo)識、第二微服務(wù)標(biāo)識以及第一交易碼;所述第一微服務(wù)標(biāo)識用于指示第一微服務(wù),所述第二微服務(wù)標(biāo)識用于指示第二微服務(wù);
5、在所述全局尋址視圖數(shù)據(jù)庫中存在所述第一交易碼,且所述第一微服務(wù)的消費(fèi)交易碼列表中存在所述第一交易碼的情況下,從所述全局尋址視圖數(shù)據(jù)庫中獲取與所述第一交易碼對應(yīng)的目標(biāo)發(fā)布環(huán)境標(biāo)識;
6、從所述交易配置數(shù)據(jù)庫中,獲取與所述目標(biāo)發(fā)布環(huán)境標(biāo)識對應(yīng)的注冊組件信息,基于所述注冊組件信息在所述第二微服務(wù)中尋址與所述第一交易碼對應(yīng)的目標(biāo)服務(wù)實(shí)例,以通過所述目標(biāo)服務(wù)實(shí)例處理所述微服務(wù)調(diào)用請求;
7、接收所述第二微服務(wù)發(fā)送的所述目標(biāo)服務(wù)實(shí)例的處理結(jié)果,并向所述第一微服務(wù)發(fā)送。
8、在一種可能的設(shè)計(jì)中,所述全局尋址視圖數(shù)據(jù)庫包括各所述微服務(wù)的全局尋址視圖數(shù)據(jù),每個(gè)所述微服務(wù)的全局尋址視圖數(shù)據(jù)包括至少一個(gè)待服務(wù)交易碼;所述消費(fèi)交易碼列表中包括至少一個(gè)待消費(fèi)交易碼;其中,待服務(wù)交易碼用于指示提供服務(wù)的交易碼,待消費(fèi)交易碼用于指示待調(diào)用服務(wù)的交易碼;
9、所述在所述全局尋址視圖數(shù)據(jù)庫中存在所述第一交易碼,且所述第一微服務(wù)的消費(fèi)交易碼列表中存在所述第一交易碼的情況下,從所述全局尋址視圖數(shù)據(jù)庫中獲取與所述第一交易碼對應(yīng)的目標(biāo)發(fā)布環(huán)境標(biāo)識,包括:
10、在所述第一微服務(wù)的消費(fèi)交易碼列表中多個(gè)待調(diào)用交易碼中匹配所述第一交易碼;
11、在所述第一微服務(wù)的消費(fèi)交易碼列表中存在與所述第一交易碼相匹配的待調(diào)用交易碼時(shí),在所述全局尋址視圖數(shù)據(jù)庫內(nèi),所述第二微服務(wù)的至少一個(gè)待服務(wù)交易碼中匹配所述第一交易碼;
12、在所述全局尋址視圖數(shù)據(jù)庫內(nèi),所述第二微服務(wù)的至少一個(gè)待服務(wù)交易碼中存在與所述第一交易碼相匹配的待服務(wù)交易碼時(shí),從所述全局尋址視圖數(shù)據(jù)庫中獲取與所述第一交易碼對應(yīng)的目標(biāo)發(fā)布標(biāo)識。
13、在一種可能的設(shè)計(jì)中,所述全局尋址視圖數(shù)據(jù)庫還包括各所述微服務(wù)的微服務(wù)標(biāo)識,以及與每個(gè)待服務(wù)交易碼一一對應(yīng)的發(fā)布環(huán)境標(biāo)識;所述交易配置數(shù)據(jù)庫包括各所述微服務(wù)的交易配置數(shù)據(jù),所述交易配置數(shù)據(jù)包括所述微服務(wù)的微服務(wù)標(biāo)識、所述微服務(wù)的多個(gè)交易碼以及所述微服務(wù)的至少一個(gè)資源環(huán)境信息;每個(gè)所述資源環(huán)境信息包括一個(gè)環(huán)境標(biāo)識、與所述環(huán)境標(biāo)識對應(yīng)的注冊組件的名稱,以及所述注冊組件的集群地址;所述微服務(wù)的多個(gè)交易碼包括所述微服務(wù)的各所述待服務(wù)交易碼;
14、所述在所述全局尋址視圖數(shù)據(jù)庫內(nèi),所述第二微服務(wù)的至少一個(gè)待服務(wù)交易碼中存在與所述第一交易碼相匹配的待服務(wù)交易碼時(shí),從所述全局尋址視圖數(shù)據(jù)庫中獲取與所述第一交易碼對應(yīng)的目標(biāo)發(fā)布標(biāo)識,包括:
15、在所述全局尋址視圖數(shù)據(jù)庫內(nèi),所述第二微服務(wù)的至少一個(gè)待服務(wù)交易碼中存在與所述第一交易碼匹配的待服務(wù)交易碼時(shí),確定與所述第一交易碼匹配的待服務(wù)交易碼時(shí)為目標(biāo)待服務(wù)交易碼;
16、從所述全局尋址視圖數(shù)據(jù)庫中,獲取與所述目標(biāo)待服務(wù)交易碼對應(yīng)的發(fā)布環(huán)境標(biāo)識,作為與所述第一交易碼對應(yīng)的目標(biāo)發(fā)布標(biāo)識。
17、在一種可能的設(shè)計(jì)中,所述交易配置數(shù)據(jù)庫包括各所述微服務(wù)的至少一個(gè)資源環(huán)境信息,每個(gè)所述資源環(huán)境信息包括一個(gè)環(huán)境標(biāo)識、與所述環(huán)境標(biāo)識對應(yīng)的注冊組件的名稱,以及所述注冊組件的集群地址;
18、所述從所述交易配置數(shù)據(jù)庫中,獲取與所述目標(biāo)發(fā)布環(huán)境標(biāo)識對應(yīng)的注冊組件信息,基于所述注冊組件信息在所述第二微服務(wù)中尋址與所述第一交易碼對應(yīng)的目標(biāo)服務(wù)實(shí)例,以通過所述目標(biāo)服務(wù)實(shí)例處理所述微服務(wù)調(diào)用請求,包括:
19、在所述交易配置數(shù)據(jù)庫中,查找與目標(biāo)發(fā)布環(huán)境標(biāo)識相匹配的環(huán)境標(biāo)識,作為目標(biāo)環(huán)境標(biāo)識;
20、在所述交易配置數(shù)據(jù)庫中,確定與目標(biāo)環(huán)境標(biāo)識對應(yīng)的注冊組件的名稱和集群地址,作為與所述目標(biāo)發(fā)布環(huán)境標(biāo)識對應(yīng)的注冊組件信息,其中,所述注冊組件信息包括注冊組件的名稱及集群地址;
21、確定與所述注冊組件的名稱和集群地址對應(yīng)的注冊組件為目標(biāo)注冊地址,在所述目標(biāo)地址中,基于所述第二微服務(wù)標(biāo)識確定與所述第二微服務(wù)對應(yīng)的各服務(wù)實(shí)例;其中,所述目標(biāo)地址中存儲(chǔ)各所述微服務(wù)注冊的多個(gè)服務(wù)實(shí)例;
22、從所述目標(biāo)注冊組件中所述第二微服務(wù)的各服務(wù)實(shí)例中,確定與第一交易碼對應(yīng)的至少一個(gè)健康服務(wù)實(shí)例,向每個(gè)所述健康服務(wù)實(shí)例發(fā)送微服務(wù)調(diào)用請求;所述健康服務(wù)實(shí)例用于指示具有處理調(diào)用請求能力的服務(wù)實(shí)例;
23、響應(yīng)于接收到所述健康服務(wù)實(shí)例的反饋信息,確定與所述反饋信息對應(yīng)的所述健康服務(wù)實(shí)例為目標(biāo)服務(wù)實(shí)例,向所述目標(biāo)服務(wù)實(shí)例發(fā)送處理指令,所述處理指令用于控制所述目標(biāo)服務(wù)實(shí)例處理所述微服務(wù)調(diào)用請求;其中,所述反饋信息用于指示所述服務(wù)實(shí)例處于空閑狀態(tài)。
24、在一種可能的設(shè)計(jì)中,所述響應(yīng)于接收到微服務(wù)調(diào)用請求,確定所述微服務(wù)調(diào)用請求對應(yīng)的調(diào)用信息之后,還包括:
25、在所述全局尋址視圖數(shù)據(jù)庫中不存在與所述第一交易碼相匹配的待服務(wù)交易碼,和/或在所述第一微服務(wù)的消費(fèi)交易碼列表中不存在與所述第一交易碼相匹配的待調(diào)用交易碼時(shí),生成調(diào)用失敗信息;
26、向所述第一微服務(wù)發(fā)送所述調(diào)用失敗信息;所述調(diào)用失敗信息用于提示所述第一微服務(wù)所述微服務(wù)調(diào)用請求未調(diào)用成功。
27、在一種可能的設(shè)計(jì)中,所述配置信息包括交易配置數(shù)據(jù)、全局尋址視圖數(shù)據(jù)和消費(fèi)交易碼數(shù)據(jù)中的至少一種;
28、對應(yīng)的,所述響應(yīng)于接收到每個(gè)微服務(wù)發(fā)送的配置信息,根據(jù)每個(gè)所述微服務(wù)的配置信息配置對應(yīng)的數(shù)據(jù)庫,并向每個(gè)所述微服務(wù)發(fā)送對應(yīng)的數(shù)據(jù)庫,包括:
29、響應(yīng)于接收到每個(gè)所述微服務(wù)發(fā)送的配置信息,基于各所述微服務(wù)的配置信息中的交易配置數(shù)據(jù),構(gòu)建所述交易配置數(shù)據(jù)庫;
30、基于各所述微服務(wù)的配置信息中的全局尋址視圖數(shù)據(jù),構(gòu)建所述全局尋址視圖數(shù)據(jù)庫;
31、基于每個(gè)所述微服務(wù)的配置信息中的消費(fèi)交易碼數(shù)據(jù),構(gòu)建與每個(gè)所述微服務(wù)對應(yīng)的消費(fèi)交易碼列表;其中,所述消費(fèi)交易碼數(shù)據(jù)包括至少一個(gè)微服務(wù)的多個(gè)交易碼;
32、向每個(gè)所述微服務(wù)發(fā)送所述交易配置數(shù)據(jù)庫、所述全局尋址視圖數(shù)據(jù)庫,以及分別向每個(gè)所述微服務(wù)發(fā)送與每個(gè)所述微服務(wù)對應(yīng)的消費(fèi)交易碼列表。
33、在一種可能的設(shè)計(jì)中,所述響應(yīng)于接收到微服務(wù)調(diào)用請求,確定所述微服務(wù)調(diào)用請求對應(yīng)的調(diào)用信息,包括:
34、響應(yīng)于接收到所述微服務(wù)調(diào)用請求,解析所述微服務(wù)調(diào)用請求,得到所述微服務(wù)調(diào)用請求攜帶的第一微服務(wù),確定與所述第一微服務(wù)標(biāo)識對應(yīng)的第一微服務(wù);
35、得到所述微服務(wù)調(diào)用請求攜帶的第二微服務(wù)標(biāo)識、第一交易碼,確定與第二微服務(wù)標(biāo)識對應(yīng)的第二微服務(wù)。
36、第二方面,本技術(shù)提供一種微服務(wù)調(diào)用裝置,包括:
37、數(shù)據(jù)庫配置模塊,用于響應(yīng)于接收到每個(gè)微服務(wù)發(fā)送的配置信息,根據(jù)每個(gè)所述微服務(wù)的配置信息配置對應(yīng)的數(shù)據(jù)庫,并向每個(gè)所述微服務(wù)發(fā)送對應(yīng)的數(shù)據(jù)庫;所述數(shù)據(jù)庫包括交易配置數(shù)據(jù)庫、全局尋址視圖數(shù)據(jù)庫以及消費(fèi)交易碼數(shù)據(jù)庫中的至少一種,所述消費(fèi)交易碼數(shù)據(jù)庫包括每個(gè)所述微服務(wù)的消費(fèi)交易碼列表;
38、調(diào)用信息確定模塊,用于響應(yīng)于接收到微服務(wù)調(diào)用請求,確定所述微服務(wù)調(diào)用請求對應(yīng)的調(diào)用信息;其中,所述調(diào)用信息包括第一微服務(wù)標(biāo)識、第二微服務(wù)標(biāo)識以及第一交易碼;所述第一微服務(wù)標(biāo)識用于指示第一微服務(wù),所述第二微服務(wù)標(biāo)識用于指示第二微服務(wù);
39、環(huán)境標(biāo)識獲取模塊,用于在所述全局尋址視圖數(shù)據(jù)庫中存在所述第一交易碼,且所述第一微服務(wù)的消費(fèi)交易碼列表中存在所述第一交易碼的情況下,從所述全局尋址視圖數(shù)據(jù)庫中獲取與所述第一交易碼對應(yīng)的目標(biāo)發(fā)布環(huán)境標(biāo)識;
40、請求處理模塊,用于從所述交易配置數(shù)據(jù)庫中,獲取與所述目標(biāo)發(fā)布環(huán)境標(biāo)識對應(yīng)的注冊組件信息,基于所述注冊組件信息在所述第二微服務(wù)中尋址與所述第一交易碼對應(yīng)的目標(biāo)服務(wù)實(shí)例,以通過所述目標(biāo)服務(wù)實(shí)例處理所述微服務(wù)調(diào)用請求;
41、發(fā)送模塊,用于接收所述第二微服務(wù)發(fā)送的所述目標(biāo)服務(wù)實(shí)例的處理結(jié)果,并向所述第一微服務(wù)發(fā)送。
42、第三方面,本技術(shù)實(shí)施例提供一種服務(wù)器,包括:至少一個(gè)處理器和存儲(chǔ)器;所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;所述至少一個(gè)處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,使得所述至少一個(gè)處理器執(zhí)行如上第一方面以及第一方面各種可能的設(shè)計(jì)所述的微服務(wù)調(diào)用方法。
43、第四方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,當(dāng)處理器執(zhí)行所述計(jì)算機(jī)執(zhí)行指令時(shí),實(shí)現(xiàn)如上第一方面以及第一方面各種可能的設(shè)計(jì)所述的微服務(wù)調(diào)用方法。
44、第五方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)如上第一方面以及第一方面各種可能的設(shè)計(jì)所述的微服務(wù)調(diào)用方法。
45、本技術(shù)提供的微服務(wù)調(diào)用方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì),通過響應(yīng)于接收到每個(gè)微服務(wù)發(fā)送的配置信息,根據(jù)每個(gè)微服務(wù)的配置信息配置對應(yīng)的交易配置數(shù)據(jù)庫、全局尋址視圖數(shù)據(jù)庫以及每個(gè)微服務(wù)的消費(fèi)交易碼列表中的至少一種數(shù)據(jù)庫。響應(yīng)于接收到微服務(wù)調(diào)用請求,確定微服務(wù)調(diào)用請求對應(yīng)的第一微服務(wù)、第二微服務(wù)以及第一交易碼等調(diào)用信息。全局尋址視圖數(shù)據(jù)庫中存在所述第一交易碼,且第一微服務(wù)的消費(fèi)交易碼列表中存在所述第一交易碼的情況下,從全局尋址視圖數(shù)據(jù)庫中獲取與第一交易碼對應(yīng)的目標(biāo)發(fā)布環(huán)境標(biāo)識。從交易配置數(shù)據(jù)庫中,獲取與目標(biāo)發(fā)布環(huán)境標(biāo)識對應(yīng)的注冊組件信息,基于所述注冊組件信息在第二微服務(wù)中尋址與第一交易碼對應(yīng)的目標(biāo)服務(wù)實(shí)例,以基于目標(biāo)服務(wù)實(shí)例處理微服務(wù)調(diào)用請求。接收第二微服務(wù)反饋的目標(biāo)服務(wù)實(shí)例的處理結(jié)果,并向第一微服務(wù)發(fā)送。這樣,可以基于目標(biāo)發(fā)布環(huán)境標(biāo)識快速定位提供者微服務(wù)的資源環(huán)境,并基于交易碼從提供者微服務(wù)中快速查找到對應(yīng)的目標(biāo)服務(wù)實(shí)例,及時(shí)通過目標(biāo)服務(wù)實(shí)例處理微服務(wù)調(diào)用請求,提高微服務(wù)調(diào)用請求的調(diào)用效率和處理效率。