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