新四季網

服務調用方法和裝置、電子設備、計算機可讀存儲介質與流程

2023-07-27 18:08:18 2



1.本公開涉及微服務技術領域,尤其涉及一種服務調用方法和裝置、電子設備、計算機可讀存儲介質。


背景技術:

2.微服務架構是目前業界主流的服務端架構之一,大型的服務或應用通常會被分解為多個細粒度的獨立的組件,每個組件都有各自的責任領域。通常在客戶端展示中,一個頁面可能需要調用多個微服務,這些調用可能存在依賴關係,先調用服務的結果,可能會作為後調用服務的輸入信息,這樣有依賴關係的調用組成了調用鏈。
3.客戶端與後端服務集之間的調用,是以通過網絡調用api(application programming interface,應用程式編程接口)的形式實現的,由於需經由網絡,所以通常延遲較高,為解決該問題,相關技術提出了使用連接多個微服務功能的組合api。但相關技術中為實現組合api所採用的方法,常常具備開發成本高,或者難以定義複雜依賴關係的問題。


技術實現要素:

4.本公開提供一種服務調用方法和裝置、電子設備、計算機可讀存儲介質,以至少解決相關技術中的如何兼顧開發成本的控制和服務間依賴關係的定義的問題,也可不解決任何上述問題。
5.根據本公開的第一方面,提供了一種服務調用方法,用於服務接口網關,所述服務調用方法包括:接收客戶端發送的服務調用請求,其中,所述服務調用請求針對由多個目標服務構成的目標組合服務,所述服務調用請求包括輸入數據;獲取所述目標組合服務的配置信息,其中,所述目標組合服務的配置信息用於指示所述服務接口網關按照預設順序向伺服器調用所述多個目標服務;根據所述目標組合服務的配置信息,按照所述預設順序向所述伺服器調用所述多個目標服務對所述輸入數據進行處理,得到輸出數據;將所述輸出數據返回至所述客戶端。
6.可選地,所述根據所述目標組合服務的配置信息,按照所述預設順序向所述伺服器調用所述多個目標服務對所述輸入數據進行處理,得到輸出數據,包括:根據預設解析規則解析所述配置信息,得到所述多個目標服務以及所述多個目標服務之間的依賴關係,其中,所述依賴關係表示相應目標服務的輸入與其他目標服務的輸出之間的對應關係;根據預設執行規則分析所述多個目標服務之間的依賴關係,確定所述預設順序;按照所述預設順序向所述伺服器調用所述多個目標服務對所述輸入數據進行處理,得到所述輸出數據。
7.可選地,所述依賴關係包括第一類依賴關係和第二類依賴關係,所述第一類依賴關係表示相應目標服務的輸入和執行均與其他任何目標服務的輸出之間無對應關係,所述第二類依賴關係表示以下至少一種對應關係:相應目標服務的輸入與其他至少一個目標服務的輸出中的目標欄位之間的映射關係、相應目標服務的執行與其他至少一個目標服務的
輸出之間的對應關係。
8.可選地,所述根據預設執行規則分析所述多個目標服務之間的依賴關係,確定所述預設順序,包括:針對所述多個目標服務,確定具備所述第一類依賴關係的目標服務,標記為第一目標服務;確定與所述第一目標服務具備所述第二類依賴關係的目標服務,標記為第二目標服務,並重複確定與最新標記的目標服務具備所述第二類依賴關係的目標服務,按序標記,直到確定沒有任何目標服務與最新標記的目標服務具備所述第二類依賴關係,得到所述預設順序。
9.可選地,所述第一類依賴關係還表示相應目標服務的輸入與所述輸入數據中的目標欄位之間的映射關係,其中,所述按照所述預設順序向所述伺服器調用所述多個目標服務對所述輸入數據進行處理,得到所述輸出數據,包括:根據所述輸入數據和所述第一類依賴關係,確定所述第一目標服務的第一輸入,並調用所述第一目標服務對所述第一輸入進行處理,得到第一輸出;根據所述第一輸出和所述第二目標服務的所述第二類依賴關係,確定所述第二目標服務的第二輸入,並調用所述第二目標服務對所述第二輸入進行處理,得到第二輸出;重複根據最新的輸出和基於所述預設順序確定的下一個目標服務的所述第二類依賴關係,確定所述下一個目標服務的輸入,並調用所述下一個目標服務對相應輸入進行處理,得到相應輸出,直到不存在所述下一個目標服務,將最新的輸出作為所述輸出數據。
10.可選地,所述獲取所述目標組合服務的配置信息,包括:從配置信息集合中查找所述目標組合服務的配置信息,其中,所述配置信息集合包括至少一個組合服務的配置信息。
11.可選地,所述服務調用方法還包括:接收低代碼平臺發送的至少一個組合服務的配置信息;根據所述至少一個組合服務的配置信息,建立或更新所述配置信息集合。
12.根據本公開的第二方面,提供了一種服務調用裝置,用於服務接口網關,所述服務調用裝置包括:接收單元,被配置為執行接收客戶端發送的服務調用請求,其中,所述服務調用請求針對由多個目標服務構成的目標組合服務,所述服務調用請求包括輸入數據;獲取單元,被配置為執行獲取所述目標組合服務的配置信息,其中,所述目標組合服務的配置信息用於指示所述服務接口網關按照預設順序向所述伺服器調用所述多個目標服務;處理單元,被配置為執行根據所述目標組合服務的配置信息,按照所述預設順序向所述伺服器調用所述多個目標服務對所述輸入數據進行處理,得到輸出數據;發送單元,被配置為執行將所述輸出數據返回至所述客戶端。
13.可選地,所述處理單元還被配置為執行根據預設解析規則解析所述配置信息,得到所述多個目標服務以及所述多個目標服務之間的依賴關係,其中,所述依賴關係表示相應目標服務的輸入與其他目標服務的輸出之間的對應關係;根據預設執行規則分析所述多個目標服務之間的依賴關係,確定所述預設順序;按照所述預設順序向所述伺服器調用所述多個目標服務對所述輸入數據進行處理,得到所述輸出數據。
14.可選地,所述依賴關係包括第一類依賴關係和第二類依賴關係,所述第一類依賴關係表示相應目標服務的輸入和執行均與其他任何目標服務的輸出之間無對應關係,所述第二類依賴關係表示以下至少一種對應關係:相應目標服務的輸入與其他至少一個目標服務的輸出中的目標欄位之間的映射關係、相應目標服務的執行與其他至少一個目標服務的輸出之間的對應關係。
15.可選地,所述處理單元還被配置為執行針對所述多個目標服務,確定具備所述第一類依賴關係的目標服務,標記為第一目標服務;確定與所述第一目標服務具備所述第二類依賴關係的目標服務,標記為第二目標服務,並重複確定與最新標記的目標服務具備所述第二類依賴關係的目標服務,按序標記,直到確定沒有任何目標服務與最新標記的目標服務具備所述第二類依賴關係,得到所述預設順序。
16.可選地,所述第一類依賴關係還表示相應目標服務的輸入與所述輸入數據中的目標欄位之間的映射關係,所述處理單元還被配置為執行根據所述輸入數據和所述第一類依賴關係,確定所述第一目標服務的第一輸入,並調用所述第一目標服務對所述第一輸入進行處理,得到第一輸出;根據所述第一輸出和所述第二目標服務的所述第二類依賴關係,確定所述第二目標服務的第二輸入,並調用所述第二目標服務對所述第二輸入進行處理,得到第二輸出;重複根據最新的輸出和基於所述預設順序確定的下一個目標服務的所述第二類依賴關係,確定所述下一個目標服務的輸入,並調用所述下一個目標服務對相應輸入進行處理,得到相應輸出,直到不存在所述下一個目標服務,將最新的輸出作為所述輸出數據。
17.可選地,所述獲取單元還被配置為執行從配置信息集合中查找所述目標組合服務的配置信息,其中,所述配置信息集合包括至少一個組合服務的配置信息。
18.可選地,所述接收單元還被配置為執行接收低代碼平臺發送的至少一個組合服務的配置信息;根據所述至少一個組合服務的配置信息,建立或更新所述配置信息集合。
19.根據本公開的第三方面,提供了一種電子設備,所述電子設備包括:至少一個處理器;至少一個存儲計算機可執行指令的存儲器,其中,所述計算機可執行指令在被所述至少一個處理器運行時,促使所述至少一個處理器執行根據本公開的服務調用方法。
20.根據本公開的第四方面,提供了一種計算機可讀存儲介質,當所述計算機可讀存儲介質中的指令被至少一個處理器運行時,促使所述至少一個處理器執行根據本公開的服務調用方法。
21.根據本公開的第五方面,提供了一種電腦程式產品,包括計算機指令,所述計算機指令被至少一個處理器執行時實現根據本公開的服務調用方法。
22.本公開的實施例提供的技術方案至少帶來以下有益效果:
23.根據本公開的實施例的服務調用方法和服務調用裝置,通過為組合服務建立配置信息,在配置信息中定義組合服務中的多個服務的執行順序,即預設順序,並向客戶端暴露組合服務接口,能夠在客戶端調用一個組合服務接口時,根據相應的配置信息,按照預設順序調用該組合服務中的多個服務。如此一來,可在服務接口網關中通過配置信息支持細粒度微服務的組合調用,客戶端不必在不同業務場景中對細粒度的微服務進行反覆調用,可減少網絡延遲的影響。服務端開發團隊則可以專注於細粒度微服務開發,有助於增加模塊內聚性。同時,既不必針對每個具體的組合服務添加膠水代碼來實現組合邏輯,能夠減少額外的開發、部署、維護成本,又可以利用配置信息方便、清晰地定義服務之間的依賴關係,理論上能夠支撐表達任意複雜依賴關係的組合服務流程,從而有效兼顧了開發成本的控制和服務間依賴關係的定義,提升了組合服務的整體性能。
24.應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本公開。
附圖說明
25.此處的附圖被併入說明書中並構成本說明書的一部分,示出了符合本公開的實施例,並與說明書一起用於解釋本公開的原理,並不構成對本公開的不當限定。
26.圖1是示出根據本公開的示例性實施例的服務調用方法的流程圖;
27.圖2是示出根據本公開的示例性實施例的服務調用方法的流程示意圖;
28.圖3是示出根據本公開的一個具體實施例的目標組合服務的流程圖;
29.圖4是示出根據本公開的示例性實施例的服務調用裝置的框圖;
30.圖5是示出根據本公開的示例性實施例的電子設備的框圖。
具體實施方式
31.為了使本領域普通人員更好地理解本公開的技術方案,下面將結合附圖,對本公開實施例中的技術方案進行清楚、完整地描述。
32.需要說明的是,本公開的說明書和權利要求書及上述附圖中的術語「第一」、「第二」等是用於區別類似的對象,而不必用於描述特定的順序或先後次序。應該理解這樣使用的數據在適當情況下可以互換,以便這裡描述的本公開的實施例能夠以除了在這裡圖示或描述的那些以外的順序實施。以下實施例中所描述的實施方式並不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
33.在此需要說明的是,在本公開中出現的「若干項之中的至少一項」均表示包含「該若干項中的任意一項」、「該若干項中的任意多項的組合」、「該若干項的全體」這三類並列的情況。例如「包括a和b之中的至少一個」即包括如下三種並列的情況:(1)包括a;(2)包括b;(3)包括a和b。又例如「執行步驟一和步驟二之中的至少一個」,即表示如下三種並列的情況:(1)執行步驟一;(2)執行步驟二;(3)執行步驟一和步驟二。
34.需要說明的是,本公開所涉及的用戶信息(包括但不限於用戶設備信息、用戶個人信息等),均為經用戶授權或者經過各方充分授權的信息。
35.微服務架構是目前業界主流的服務端架構之一,大型的服務或應用通常會被分解為多個細粒度的獨立的組件,每個組件都有各自的責任領域,例如:基本用戶信息、用戶評論等等。通常在客戶端展示中,一個頁面可能需要調用多個微服務,這些調用可能存在依賴關係,先調用服務的結果,可能會作為後調用服務的輸入信息,這樣有依賴關係的調用組成了調用鏈。
36.客戶端與後端服務集之間的調用,是以通過網絡調用api的形式實現的,由於需經由網絡,所以通常延遲較高,有鑑於此,應儘量避免客戶端發起長調用鏈,以減少網絡延遲造成的後調用服務無法及時獲取前調用服務的結果的情況發生。為解決該問題,相關技術提出了使用連接多個微服務功能的組合api。
37.為實現組合api,相關技術中主要存在兩種方式。
38.一種是直接開發業務需要的組合api,通過api網關暴露給客戶端。這種方式技術簡單,但開發成本較高,每產生一個新業務場景,都需要對應開發部署相應的組合api,並且隨著業務需求變化,還需要進行變更維護。此外,由於微服務粒度小,會產生組合爆炸,因此需要開發較大數量的不同的組合api。
39.另一種是接入支持graphql的網關。graphql是一種用於api的查詢語言,可對api中的數據提供一套易於理解的完整描述,使客戶端能夠準確獲得需要的數據。具體來說,graphql需要規範定義可以返回的數據類型,以及獲取數據欄位的方法(graphqlresolver,graphql解析器,用代碼的形式描述如何調用一個或多個微服務api來實現一個簡單的功能),並允許在獲取欄位時,傳入參數。此時客戶端請求的是具體的數據,而非請求調用api。當客戶端請求數據時,網關可根據該數據以及各個resolver的輸入輸出數據,順序調用多個resolver以實現一個複雜的功能。例如客戶端傳入用戶id,請求返回該用戶的好友的最新上傳內容,就可以先調用一個獲取用戶好友的resolver,再調用一個獲取用戶最新上傳內容的resolver,從而實現該功能,將得到的數據返回給客戶端。這種方式可根據客戶端請求的數據調用相應的多個resolver,增大了客戶端請求的自由度,也就無需開發大量固定的組合api代碼,具有靈活、開發成本相對低的優勢。但缺點在於,每個請求中都需要有驗證流程,以驗證操作是否合法,導致引入額外開銷。同時,resolver的定義,實際上是graphql網關的一部分內容,所以更新resolver通常需要重新部署網關。再者,resolver默認可以使用調用鏈中的前一個resolver的輸出,但不能直接獲取有間隔的其他resolver的輸出,而需要先將其他resolver的輸出寫入「共享上下文」,再從「共享上下文」中獲取到所需的數據。此時雖然可以獲取到所需的數據,但無法體現這些resolver之間的依賴關係,所以要定義複雜依賴關係比較困難,例如很難表達一個resolver要依賴多個前置的同類型resolver的共享數據。此外,由於本質上graphql是按照樹狀結構組織輸出,這也就限制了resolver之間只能表達樹狀依賴,導致無法顯式定義resolver數據的依賴關係。
40.根據本公開的示例性實施例的服務調用方法和裝置,通過為組合服務建立配置信息,在配置信息中定義組合服務中的多個服務的執行順序,即預設順序,並向客戶端暴露組合服務接口,能夠在客戶端調用一個組合服務接口時,根據相應的配置信息,按照預設順序調用該組合服務中的多個服務。如此一來,可在服務接口網關中通過配置信息支持細粒度微服務的組合調用,客戶端不必在不同業務場景中對細粒度的微服務進行反覆調用,可減少網絡延遲的影響。服務端開發團隊則可以專注於細粒度微服務開發,有助於增加模塊內聚性。同時,既不必針對每個具體的組合服務添加膠水代碼來實現組合邏輯,能夠減少額外的開發、部署、維護成本,又可以利用配置信息方便、清晰地定義服務之間的依賴關係,理論上能夠支撐表達任意複雜依賴關係的組合服務流程,從而有效兼顧了開發成本的控制和服務間依賴關係的定義,提升了組合服務的整體性能。
41.下面,將參照圖1至圖5具體描述根據本公開的示例性實施例的服務調用方法和服務調用裝置。
42.圖1是示出根據本公開的示例性實施例的服務調用方法的流程圖。圖2是示出根據本公開的示例性實施例的服務調用方法的流程示意圖。應理解,根據本公開的示例性實施例的服務調用方法可以在服務接口網關(即api網關)中實現,圖2示出的是客戶端、服務接口網關、低代碼平臺、服務的交互流程,其中,最終被調用的服務通常為微服務。
43.參照圖1和圖2,在步驟101,接收客戶端發送的服務調用請求,其中,服務調用請求針對由多個目標服務構成的目標組合服務,服務調用請求包括輸入數據。本公開的示例性實施例的服務接口網關可暴露組合服務接口,客戶端只需針對目標組合服務發送包括輸入數據的服務調用請求,即可實現調用目標組合服務接口來處理輸入數據。
44.在步驟102,獲取目標組合服務的配置信息,其中,目標組合服務的配置信息用於指示服務接口網關按照預設順序向伺服器調用多個目標服務。配置信息是提前建立好的,用於指導目標組合服務的執行。
45.可選地,步驟102包括:從配置信息集合中查找目標組合服務的配置信息,其中,配置信息集合包括至少一個組合服務的配置信息。通過提前建立配置信息集合,可以構建多個不同的組合服務,滿足豐富的服務需要,併集中管理不同的組合服務的配置信息,提升信息管理效率,保證組合服務可靠執行。參照圖2,配置信息集合中可以關聯存儲組合服務的名稱和配置信息,通過從中查找目標組合服務的名稱,就可找到目標組合服務的配置信息。
46.可選地,根據本公開的示例性實施例的服務調用方法還包括:接收低代碼平臺發送的至少一個組合服務的配置信息;根據至少一個組合服務的配置信息,建立或更新配置信息集合。低代碼平臺可以在可視化頁面以拖放式功能創建業務應用,操作方便,且流程清晰。通過在低代碼平臺可視化編輯組合服務的配置信息,不但能夠提升配置信息的編輯效率,降低組合服務的開發維護成本,還能夠藉助可視化的流程圖顯示描述組合服務中複雜的調用依賴關係,以及返回的輸出數據的構成方法,從而提升配置信息的表達能力。在此基礎上,服務接口網關可根據低代碼平臺發送來的配置信息,建立或更新配置信息集合,保障了配置信息集合的及時更新。應理解,低代碼平臺需支持創建和編輯流程圖,同時還可以支持一些分支選擇,也就是根據服務調用請求中的輸入數據的欄位或某個服務的輸出欄位來決定後續的調用分支。
47.作為示例,在低代碼平臺,可以可視化編輯和維護如下內容:
48.1、每一個原子服務接口的定義(原子服務接口就是指作為組合服務的組成部分的服務的接口),包含輸入數據結構、輸出數據結構(圖2中「服務1
」……「
服務m」等的輸入輸出信息);
49.2、每一個組合服務中,所需要的原子服務的依賴關係,即圖2中「執行流程」所對應的流程圖定義,包括流程圖中每一個節點,即對應一個服務接口的調用,或是選擇/分支流程,還包括流程圖中每一條邊,這些邊定義了該流程中兩個服務之間的依賴關係;
50.3、在定義的依賴關係中,被依賴的輸出欄位與依賴其的節點所需要的輸入欄位的對應關係,例如:若服務y依賴服務x,則調用服務x輸出的結果中的欄位x可能被映射為服務y輸入所需的欄位y。
51.此流程中,被依賴的輸出欄位和依賴其的節點的輸入欄位的對應關係,需要一種欄位選擇描述方法,可以參考xpath/jsonpath,通過定義一個路徑序列,從被依賴消息中選擇欄位,拼合到後續調用節點的輸入指定欄位中。
52.在通過低代碼平臺定義組合服務後,這些流程圖描述將被序列化為配置信息,定期下發到服務接口網關中,服務接口網關根據客戶端發送的服務調用請求所針對的目標組合服務(作為示例,可在服務調用請求中包含目標組合服務的組合id,例如圖2中客戶端發送的「組合k」),選擇配置信息,可得到特定流程圖。
53.在步驟103,根據目標組合服務的配置信息,按照預設順序向伺服器調用多個目標服務對輸入數據進行處理,得到輸出數據。參考上文,對於在低代碼平臺編輯配置信息的實施例,還需要將序列化的配置信息進行反序列化處理,以得到目標組合服務的執行流程。
54.可選地,配置信息中包含了組成組合服務的各個服務的輸入和輸出,以及不同服
務的輸入和輸出之間的對應關係,從而體現了各個服務之間的依賴關係,進而限定了各個服務的執行順序,也即限定了組合服務的執行流程。相應地,步驟103包括:根據預設解析規則解析配置信息,也就是進行反序列化處理,得到多個目標服務以及多個目標服務之間的依賴關係,其中,依賴關係表示相應目標服務的輸入與其他目標服務的輸出之間的對應關係;根據預設執行規則分析多個目標服務之間的依賴關係,確定預設順序;按照預設順序向伺服器調用多個目標服務對輸入數據進行處理,得到輸出數據。通過配置預設解析規則和預設執行規則,具體是提前寫好解析代碼和執行代碼,就可基於預設解析規則解析配置信息,並基於預設執行規則執行目標組合服務,不必對類似的配置重複書寫代碼,能夠有效降低開發、部署和維護成本。
55.可選地,依賴關係包括第一類依賴關係和第二類依賴關係,第一類依賴關係表示相應目標服務的輸入和執行均與其他任何目標服務的輸出之間無對應關係,第二類依賴關係表示以下至少一種對應關係:相應目標服務的輸入與其他至少一個目標服務的輸出中的目標欄位之間的映射關係、相應目標服務的執行與其他至少一個目標服務的輸出之間的對應關係。通過區分出第一類依賴關係和第二類依賴關係,能夠基於第一類依賴關係確定最先執行的目標服務,並基於第二類依賴關係確定後續執行的目標服務,保障了預設順序的可靠確定。其中,第二類依賴關係又可具體包含前述的兩種,前一種表示輸入和輸出之間的映射關係,從而可據此得到在後目標服務的輸入,後一種表示在後目標服務可以是多個,但具體執行哪一個或哪幾個,需要根據在先目標服務(也就是與在後目標服務具備這種第二類依賴關係的其他至少一個目標服務)的輸出來判斷確定,從而實現了更豐富的目標組合服務執行流程,有助於滿足不同的執行需要。應理解,同樣的兩個目標服務,可以既具備前一種第二類依賴關係,又具備後一種第二類依賴關係,也就是在先目標服務的輸出既決定在後具體執行哪一個或哪幾個在後目標服務,又同時決定這一個或這幾個在後目標服務的輸入。對於僅具備後一種第二類依賴關係的情況,在後目標服務的輸入例如可以是預設值(即第二類依賴關係還表示相應目標服務的輸入為預設值),也可以是輸入數據中的目標欄位(即第二類依賴關係還表示相應目標服務的輸入與輸入數據中的目標欄位之間的映射關係),本公開對此不作限制。
56.可選地,步驟103中確定預設順序的步驟包括:針對多個目標服務,確定具備第一類依賴關係的目標服務,標記為第一目標服務;確定與第一目標服務具備第二類依賴關係的目標服務,標記為第二目標服務,並重複確定與最新標記的目標服務具備第二類依賴關係的目標服務,按序標記,直到確定沒有任何目標服務與最新標記的目標服務具備第二類依賴關係,得到預設順序。藉助第一類依賴關係,可以有效確定出最先執行的第一目標服務,此後按照第二類依賴關係,結合最新標記的目標服務的輸出,就能夠逐個確定出其他目標服務的執行順序,從而得到預設順序,保障了預設順序的可靠確定。應理解,每個序號的目標服務的數量可為至少一個,也就是對於沒有先後順序要求、可以同時執行的目標服務,可以使用同一個序號,與這些具有相同序號的目標服務具備第二類依賴關係的目標服務也可以相應使用同一個序號,此時需要將前一序號的所有目標服務都執行完畢後,再執行後一序號的目標服務。當然,也可以每個序號的目標服務僅限一個,也就是為每個目標服務分配唯一的序號,本公開對此不作限制。
57.可選地,第一類依賴關係還表示相應目標服務的輸入與輸入數據中的目標欄位之
間的映射關係,其中,步驟103中的按照預設順序向伺服器調用多個目標服務對輸入數據進行處理,得到輸出數據的步驟包括:根據輸入數據和第一類依賴關係,確定第一目標服務的第一輸入,並調用第一目標服務對第一輸入進行處理,得到第一輸出;根據第一輸出和第二目標服務的第二類依賴關係,確定第二目標服務的第二輸入,並調用第二目標服務對第二輸入進行處理,得到第二輸出;重複根據最新的輸出和基於預設順序確定的下一個目標服務的第二類依賴關係,確定下一個目標服務的輸入,並調用下一個目標服務對相應輸入進行處理,得到相應輸出,直到不存在下一個目標服務,將最新的輸出作為輸出數據。通過結合輸入數據和第一類依賴關系所表示的映射關係,可明確第一目標服務的輸入(即第一輸入),保障了第一目標服務的可靠調用。後續按序確定下一個目標服務的輸入並予以調用,可最終得到輸出數據,實現目標組合服務的可靠調用。
58.在一個具體實施例中,目標組合服務的配置信息包括如下依賴關係:
59.服務c依賴服務a、b。
60.服務a的輸出欄位a_o,映射為服務c的輸入欄位c_i0。
61.服務b的輸出欄位b_o,映射為服務c的輸入欄位c_i1。
62.服務a的輸入為服務調用請求中輸入數據的欄位req_x。
63.服務b的輸入為服務調用請求中輸入數據的欄位req_y。
64.輸出數據為服務c的輸出欄位c_o。
65.通過根據預設執行規則分析上述具體實施例的服務a、b、c之間的依賴關係可以發現,服務a、b不依賴其他服務,以服務調用請求中的輸入數據的目標欄位為輸入,所以可以優先並行執行,服務c依賴服務a、b,需結合服務a、b的輸出,得到其輸入,所以可以得到先調用服務a、b,再調用服務c的預設順序。可根據該預設順序進行服務調用。
66.圖3是示出根據本公開的一個具體實施例的目標組合服務的流程圖。
67.參照圖3,服務接口網關可組織如下調用流程:
68.1、並發調用:將輸入數據中的欄位req_x映射到服務a的輸入欄位a_i,調用服務a,並將輸入數據中的欄位req_y映射到服務b的輸入欄位b_i,調用服務b。
69.2、等待服務a和服務b調用結束。
70.3、將調用服務a的輸出欄位a_o映射到服務c的輸入欄位c_i0,將服務b的輸出欄位b_o映射到服務c的輸入欄位c_i1,調用服務c。
71.4、等待服務c調用結束。
72.5、將服務c的輸出欄位c_o映射為目標組合服務的輸出。
73.返回圖1,在步驟104,將輸出數據返回至客戶端。通過向客戶端反饋最終得到的輸出數據,可完成目標組合服務的完整調用流程。由於客戶端只需發送一次針對目標組合服務的服務調用請求,就可收到反饋的輸出數據,無需對細粒度的微服務盡心反覆調用,因而可減少對網速的依賴,降低網絡延遲對服務調用的影響。
74.圖4是示出根據本公開的示例性實施例的服務調用裝置的框圖。應理解,根據本公開的示例性實施例的服務調用裝置可以在服務接口網關(即api網關)中實現。
75.參照圖4,服務調用裝置400包括接收單元401、獲取單元402、處理單元403、發送單元404。
76.接收單元401可接收客戶端發送的服務調用請求,其中,服務調用請求針對由多個
目標服務構成的目標組合服務,服務調用請求包括輸入數據。
77.可選地,接收單元401還可接收低代碼平臺發送的至少一個組合服務的配置信息;根據至少一個組合服務的配置信息,建立或更新配置信息集合。
78.獲取單元402可獲取目標組合服務的配置信息,目標組合服務的配置信息用於指示服務接口網關按照預設順序向伺服器調用多個目標服務。
79.可選地,獲取單元402還可從配置信息集合中查找目標組合服務的配置信息,其中,配置信息集合包括至少一個組合服務的配置信息。
80.處理單元403可根據目標組合服務的配置信息,按照預設順序向伺服器調用多個目標服務對輸入數據進行處理,得到輸出數據。
81.可選地,處理單元403還可根據預設解析規則解析配置信息,得到多個目標服務以及多個目標服務之間的依賴關係,其中,依賴關係表示相應目標服務的輸入與其他目標服務的輸出之間的對應關係;根據預設執行規則分析多個目標服務之間的依賴關係,確定預設順序;按照預設順序向伺服器調用多個目標服務對輸入數據進行處理,得到輸出數據。
82.可選地,依賴關係包括第一類依賴關係和第二類依賴關係,第一類依賴關係表示相應目標服務的輸入和執行均與其他任何目標服務的輸出之間無對應關係,第二類依賴關係表示以下至少一種對應關係:相應目標服務的輸入與其他至少一個目標服務的輸出中的目標欄位之間的映射關係、相應目標服務的執行與其他至少一個目標服務的輸出之間的對應關係。
83.可選地,處理單元403還可針對多個目標服務,確定具備第一類依賴關係的目標服務,標記為第一目標服務;確定與第一目標服務具備第二類依賴關係的目標服務,標記為第二目標服務,並重複確定與最新標記的目標服務具備第二類依賴關係的目標服務,按序標記,直到確定沒有任何目標服務與最新標記的目標服務具備第二類依賴關係,得到預設順序。
84.可選地,第一類依賴關係還表示相應目標服務的輸入與輸入數據中的目標欄位之間的映射關係,處理單元403還可根據輸入數據和第一類依賴關係,確定第一目標服務的第一輸入,並調用第一目標服務對第一輸入進行處理,得到第一輸出;根據第一輸出和第二目標服務的第二類依賴關係,確定第二目標服務的第二輸入,並調用第二目標服務對第二輸入進行處理,得到第二輸出;重複根據最新的輸出和基於預設順序確定的下一個目標服務的第二類依賴關係,確定下一個目標服務的輸入,並調用下一個目標服務對相應輸入進行處理,得到相應輸出,直到不存在下一個目標服務,將最新的輸出作為輸出數據。
85.發送單元404可將輸出數據返回至客戶端。
86.關於上述實施例中的裝置,其中各個單元執行操作的具體方式已經在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
87.圖5是根據本公開的示例性實施例的電子設備的框圖。
88.參照圖5,電子設備500包括至少一個存儲器501和至少一個處理器502,所述至少一個存儲器501中存儲有計算機可執行指令集合,當計算機可執行指令集合被至少一個處理器502執行時,執行根據本公開的示例性實施例的服務調用方法。
89.作為示例,電子設備500可以是pc計算機、平板裝置、個人數字助理、智慧型手機、或其他能夠執行上述指令集合的裝置。這裡,電子設備500並非必須是單個的電子設備,還可
以是任何能夠單獨或聯合執行上述指令(或指令集)的裝置或電路的集合體。電子設備500還可以是集成控制系統或系統管理器的一部分,或者可被配置為與本地或遠程(例如,經由無線傳輸)以接口互聯的可攜式電子設備。
90.在電子設備500中,處理器502可包括中央處理器(cpu)、圖形處理器(gpu)、可編程邏輯裝置、專用處理器系統、微控制器或微處理器。作為示例而非限制,處理器還可包括模擬處理器、數字處理器、微處理器、多核處理器、處理器陣列、網絡處理器等。
91.處理器502可運行存儲在存儲器501中的指令或代碼,其中,存儲器501還可以存儲數據。指令和數據還可經由網絡接口裝置而通過網絡被發送和接收,其中,網絡接口裝置可採用任何已知的傳輸協議。
92.存儲器501可與處理器502集成為一體,例如,將ram或快閃記憶體布置在集成電路微處理器等之內。此外,存儲器501可包括獨立的裝置,諸如,外部盤驅動、存儲陣列或任何資料庫系統可使用的其他存儲裝置。存儲器501和處理器502可在操作上進行耦合,或者可例如通過i/o埠、網絡連接等互相通信,使得處理器502能夠讀取存儲在存儲器中的文件。
93.此外,電子設備500還可包括視頻顯示器(諸如,液晶顯示器)和用戶交互接口(諸如,鍵盤、滑鼠、觸摸輸入裝置等)。電子設備500的所有組件可經由總線和/或網絡而彼此連接。
94.根據本公開的示例性實施例,還可提供一種計算機可讀存儲介質,當計算機可讀存儲介質中的指令被至少一個處理器運行時,促使至少一個處理器執行根據本公開的示例性實施例的服務調用方法。這裡的計算機可讀存儲介質的示例包括:只讀存儲器(rom)、隨機存取可編程只讀存儲器(prom)、電可擦除可編程只讀存儲器(eeprom)、隨機存取存儲器(ram)、動態隨機存取存儲器(dram)、靜態隨機存取存儲器(sram)、快閃記憶體、非易失性存儲器、cd-rom、cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、dvd+rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、藍光或光碟存儲器、硬碟驅動器(hdd)、固態硬碟(ssd)、卡式存儲器(諸如,多媒體卡、安全數字(sd)卡或極速數字(xd)卡)、磁帶、軟盤、磁光數據存儲裝置、光學數據存儲裝置、硬碟、固態盤以及任何其他裝置,所述任何其他裝置被配置為以非暫時性方式存儲電腦程式以及任何相關聯的數據、數據文件和數據結構並將所述電腦程式以及任何相關聯的數據、數據文件和數據結構提供給處理器或計算機使得處理器或計算機能執行所述電腦程式。上述計算機可讀存儲介質中的電腦程式可在諸如客戶端、主機、代理裝置、伺服器等計算機設備中部署的環境中運行,此外,在一個示例中,電腦程式以及任何相關聯的數據、數據文件和數據結構分布在聯網的計算機系統上,使得電腦程式以及任何相關聯的數據、數據文件和數據結構通過一個或多個處理器或計算機以分布式方式存儲、訪問和執行。
95.根據本公開的示例性實施例,還可提供一種電腦程式產品,該電腦程式產品包括計算機指令,計算機指令被至少一個處理器運行時,促使至少一個處理器執行根據本公開的示例性實施例的服務調用方法。
96.根據本公開的示例性實施例的服務調用方法和裝置、電子設備、計算機可讀存儲介質,通過為組合服務建立配置信息,在配置信息中定義組合服務中的多個服務的執行順序,即預設順序,並向客戶端暴露組合服務接口,能夠在客戶端調用一個組合服務接口時,根據相應的配置信息,按照預設順序調用該組合服務中的多個服務。如此一來,可在服務接
口網關中通過配置信息支持細粒度微服務的組合調用,客戶端不必在不同業務場景中對細粒度的微服務進行反覆調用,可減少網絡延遲的影響。服務端開發團隊則可以專注於細粒度微服務開發,有助於增加模塊內聚性。同時,既不必針對每個具體的組合服務添加膠水代碼來實現組合邏輯,能夠減少額外的開發、部署、維護成本,又可以利用配置信息方便、清晰地定義服務之間的依賴關係,理論上能夠支撐表達任意複雜依賴關係的組合服務流程,從而有效兼顧了開發成本的控制和服務間依賴關係的定義,提升了組合服務的整體性能。
97.本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本公開的其它實施方案。本技術旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理並包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正範圍和精神由下面的權利要求指出。
98.應當理解的是,本公開並不局限於上面已經描述並在附圖中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本公開的範圍僅由所附的權利要求來限制。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀