本申請實施例提供了一種微服務調用方法、電子設備及存儲介質。其中,微服務調用方法包括:響應于接收到業務請求,確定需要調用的目標微服務;獲取自身的版本號和目標微服務的已發布版本號;從目標微服務的已發布版本號中,篩選與自身的版本號兼容的目標版本號;響應于篩選出目標版本號,調用目標版本號對應的目標微服務。本申請實施例中,對于微服務來說會保留該微服務的各已發布版本,在某個微服務需要調用目標微服務的情況下,能夠從該目標微服務的已發布版本號中篩選與該微服務自身的版本號兼容的目標版本號,進而調用該目標版本號對應版本的目標微服務,因此能夠解決由于版本不兼容導致的微服務調用異常的問題,保證微服務之間的正常調用。之間的正常調用。之間的正常調用。
【技術實現步驟摘要】
微服務調用方法、電子設備及存儲介質
[0001]本申請涉及互聯網
,特別是涉及一種微服務調用方法、電子設備及存儲介質。
技術介紹
[0002]隨著互聯網技術的迅速發展,基于微服務架構的系統被越來越廣泛地應用于大型系統的開發中,微服務架構的系統能夠解決單體系統的不足,同時也能夠滿足越來越復雜的業務需求。
[0003]微服務架構的系統是一個分布式的系統,按業務進行劃分為獨立的服務單元,該服務單元稱為微服務。微服務架構的系統使得微服務可以獨立的部署、運行、升級,并且微服務與微服務之間在結構上“松耦合”,而在功能上則表現為一個統一的整體。在微服務架構中,微服務與微服務之間可能存在依賴關系,這種依賴關系使得在實際應用中某個微服務需要調用與其具有依賴關系的其他微服務。
[0004]為了對微服務的功能等方面進行優化改進,通常需要對微服務進行升級,升級后發布新版本的微服務。但是,在新版本的微服務發布后,與其存在依賴關系的微服務如果調用該新版本的微服務,可能會由于其與該新版本的微服務不兼容,從而導致在調用該新版本的微服務時出現異常。因此,如何保證新版本的微服務發布后微服務之間能夠正常調用,是目前亟待解決的技術問題。
技術實現思路
[0005]鑒于上述問題,本申請實施例提出了一種微服務調用方法、電子設備及存儲介質,能夠保證微服務之間的正常調用。
[0006]根據本申請的實施例的一個方面,提供了一種微服務調用方法,所述方法包括:
[0007]響應于接收到業務請求,確定需要調用的目標微服務;
[0008]獲取自身的版本號和所述目標微服務的已發布版本號;
[0009]從所述目標微服務的已發布版本號中,篩選與所述自身的版本號兼容的目標版本號;
[0010]響應于篩選出所述目標版本號,調用所述目標版本號對應的目標微服務。
[0011]根據本申請的實施例的另一方面,提供了一種電子設備,包括:一個或多個處理器;和其上存儲有指令的一個或多個計算機可讀存儲介質;當所述指令由所述一個或多個處理器執行時,使得所述處理器執行如上任一項所述的微服務調用方法。
[0012]根據本申請的實施例的另一方面,提供了一種計算機可讀存儲介質,其上存儲有計算機程序,當所述計算機程序被處理器執行時,使得所述處理器執行如上任一項所述的微服務調用方法。
[0013]本申請實施例中,微服務響應于接收到業務請求,確定需要調用的目標微服務,獲取自身的版本號和所述目標微服務的已發布版本號,從所述目標微服務的已發布版本號中
篩選與所述自身的版本號兼容的目標版本號,響應于篩選出所述目標版本號,調用所述目標版本號對應的目標微服務。由此可知,本申請實施例中,對于微服務來說,會保留該微服務的各已發布版本,在某個微服務需要調用目標微服務的情況下,能夠從該目標微服務的已發布版本號中篩選與該微服務自身的版本號兼容的目標版本號,進而調用該目標版本號對應版本的目標微服務,因此能夠解決由于版本不兼容導致的微服務調用異常的問題,保證微服務之間的正常調用。
附圖說明
[0014]為了更清楚地說明本申請實施例的技術方案,下面將對本申請實施例的描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些附圖,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0015]圖1是本申請實施例的一種微服務調用方法的步驟流程圖。
[0016]圖2是本申請實施例的另一種微服務調用方法的步驟流程圖。
[0017]圖3是本申請實施例的一種微服務篩選過程的示意圖。
[0018]圖4是本申請實施例的另一種微服務篩選過程的示意圖。
[0019]圖5是本申請實施例的一種電子設備的結構示意圖。
具體實施方式
[0020]下面將結合本申請的實施例中的附圖,對本申請的實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例只是本申請的一部分實施例,而不是本申請的全部實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
[0021]在微服務架構中,微服務與微服務之間可能存在依賴關系(也稱為調用關系),因此,在實際應用中,針對一個業務請求,可能會伴隨多個微服務的調用。
[0022]舉例來說,假設當用戶通過客戶端發起一個業務請求時,該業務請求首先到達微服務A,然后微服務A需要調用微服務B,微服務B還需要調用微服務C和微服務D,微服務C和微服務D處理完后向微服務B做出響應,微服務B處理完后向微服務A做出響應,最后由微服務A來響應用戶的業務請求。其中,A、B、C、D表示微服務的標識。
[0023]在發布新版本的微服務的應用場景下,如果一個或多個微服務發布了新版本,并且這些新版本的微服務之間存在依賴關系,則常常會因為無法相互兼容的新舊版本交叉調用而導致大面積訪問出現異常。
[0024]舉例來說,假設某次發布清單中有微服務A和微服務B,并且存在微服務A調用微服務B的調用關系。初始時,線上的微服務A的版本號為A1,微服務B的版本號為B1,后期對微服務A和微服務B調整升級后,發布的微服務A的新版本的版本號為A2,微服務B的新版本的版本號為B2。其中,微服務A的版本號A1與微服務B的版本號B1相互兼容,微服務A的版本號A2與微服務B的版本號B2相互兼容,因此,微服務A的版本A1可以正常調用微服務B的版本B1,微服務A的版本A2可以正常調用微服務B的版本B2。
[0025]當系統中存在微服務A調用微服務B的需求時,通常情況下系統會隨機調用微服務
B的版本。但是,如果微服務A的當前版本為A1,當系統隨機調用到微服務B的版本B2時,則會出現調用異常的情況;類似的,如果微服務A的當前版本為A2,當系統隨機調用到微服務B的版本B1時,則會出現調用異常的情況。
[0026]針對上述微服務之間調用異常的問題,本申請實施例中提出,在某個微服務需要調用其他微服務的情況下,篩選與自身的版本號兼容的其他微服務的目標版本號,從而能夠準確調用與自身兼容的版本,保證微服務之間的正常調用。
[0027]本實施例中的微服務調用方法的執行主體可以為當前微服務(也即接收到業務請求的微服務),也可以為當前微服務對應的電子設備(比如終端或者服務器等),本實施例對此不作限制。以下將以執行主體為當前微服務為例進行說明。
[0028]參照圖1,示出了本申請實施例的一種微服務調用方法的步驟流程圖。
[0029]如圖1所示,微服務調用方法可以包括以下步驟:
[0030]步驟101,響應于接收到業務請求,確定需要調用的目標微服務。
[0031]用戶通過在客戶端上執行相應操作可以觸發業務請求。示意性的,客戶端可以包括但不限于:應用程序(APP)、網頁程序,等等。示意性的,業務請求可以包括但不限于HTTP(Hyper Text Transfer本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種微服務調用方法,其特征在于,所述方法包括:響應于接收到業務請求,確定需要調用的目標微服務;獲取自身的版本號和所述目標微服務的已發布版本號;從所述目標微服務的已發布版本號中,篩選與所述自身的版本號兼容的目標版本號;響應于篩選出所述目標版本號,調用所述目標版本號對應的目標微服務。2.根據權利要求1所述的方法,所述從所述目標微服務的已發布版本號中,篩選與所述自身的版本號兼容的目標版本號,包括如下步驟:讀取預先配置的調用規則;所述調用規則包括微服務之間相互兼容的版本號的調用關系;基于所述調用規則,從所述目標微服務的已發布版本號中,篩選與所述自身的版本號兼容的目標版本號。3.根據權利要求2所述的方法,所述讀取預先配置的調用規則,包括如下步驟:獲取預先加載的配置文件,所述配置文件中包含所述調用規則;從所述配置文件中讀取所述調用規則。4.根據權利要求3所述的方法,所述配置文件在微服務啟動時被加載。5.根據權利要求2所述的方法,所述讀取預先配置的調用規則,包括如下步驟:獲取所述業務請求的請求頭,所述請求頭中包含所述調用規則;從所述請求頭中讀取所述調用規則。6....
【專利技術屬性】
技術研發人員:劉運龍,
申請(專利權)人:博泰車聯網科技上海股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。