本技術涉及api網關,尤其涉及微服務實例路由方法、api網關及計算服務設備。
背景技術:
1、隨著互聯(lián)網技術的發(fā)展,微服務架構已成為構建大型分布式系統(tǒng)的重要模式之一。它通過將應用程序分解為一系列獨立的小型服務(也即微服務),實現(xiàn)了更高的模塊化、可維護性和可擴展性。然而,隨著服務數(shù)量的增長和用戶需求的多樣化,如何有效地管理和路由這些微服務成為了新的挑戰(zhàn)。api(application?programming?interface,應用程序編程接口)網關作為微服務架構中的關鍵組件,負責接收外部請求并將其轉發(fā)給正確的微服務實例,其路由策略直接影響到整個系統(tǒng)的性能和用戶體驗。
2、目前,大多數(shù)api網關采用負載均衡的方式,從同一微服務下的多個微服務實例中選取實例來處理請求。常見的負載均衡算法包括輪詢、最少連接數(shù)、加權輪詢等。這些方法雖然能夠在一定程度上保證流量的均勻分布,但忽略了客戶端入站請求的具體特征和技術條件,導致路由決策不夠靈活和精準。
技術實現(xiàn)思路
1、本技術的主要目的在于提供一種微服務實例路由方法、api網關及計算服務設備,旨在解決相關技術中api網關的路由決策不夠靈活和精準的技術問題。
2、為實現(xiàn)上述目的,本技術提供一種微服務實例路由方法,所述方法應用于api網關,包括:
3、在接收到客戶端發(fā)送的入站請求后,從所述入站請求中提取出目標微服務實例匹配信息,并確定所述入站請求對應的目標微服務,其中,所述目標微服務實例匹配信息包括所述入站請求對應的內容類型、接收內容類型、客戶端類型和網絡連接類型中的至少一種;
4、基于所述目標微服務實例匹配信息,從所述目標微服務下的多個微服務實例中,匹配出所述入站請求對應的目標微服務實例;
5、獲取所述目標微服務實例對應的網絡地址,并基于所述網絡地址將所述入站請求路由至所述目標微服務實例。
6、在一實施例中,所述基于所述目標微服務實例匹配信息,從所述目標微服務下的多個微服務實例中,匹配出所述入站請求對應的目標微服務實例的步驟,包括:
7、獲取預先分別為所述目標微服務下各微服務實例設置的微服務實例匹配條件,并將所述目標微服務實例匹配信息與各微服務實例對應的微服務實例匹配條件進行比較,得到各微服務實例對應的比較結果;
8、根據(jù)各微服務實例對應的比較結果,從各微服務實例中確定出所述入站請求對應的目標微服務實例。
9、在一實施例中,所述根據(jù)各微服務實例對應的比較結果,從各微服務實例中確定出所述入站請求對應的目標微服務實例的步驟,包括:
10、根據(jù)各微服務實例對應的比較結果,將各微服務實例中微服務實例匹配條件被所述目標微服務實例匹配信息滿足的微服務實例,作為備選微服務實例;
11、在所述備選微服務實例的數(shù)量為一的情況下,將所述備選微服務實例確定為所述入站請求對應的目標微服務實例。
12、在一實施例中,所述根據(jù)各微服務實例對應的比較結果,將各微服務實例中微服務實例匹配條件被所述目標微服務實例匹配信息滿足的微服務實例,作為備選微服務實例的步驟之后,還包括:
13、在所述備選微服務實例的數(shù)量大于一的情況下,基于預設的微服務實例選取策略,從各備選微服務實例中確定出所述入站請求對應的目標微服務實例。
14、在一實施例中,預設的微服務實例選取策略為:優(yōu)先選取連接數(shù)更小的備選微服務實例;
15、所述基于預設的微服務實例選取策略,從各備選微服務實例中確定出所述入站請求對應的目標微服務實例的步驟,包括:
16、獲取各備選微服務實例的連接數(shù)和連接數(shù)閾值,并從各備選微服務實例中將連接數(shù)小于連接數(shù)閾值的備選微服務實例作為待選微服務實例;
17、從所述待選微服務實例中,將連接數(shù)最小的微服務實例確定為所述入站請求對應的目標微服務實例。
18、在一實施例中,預設的微服務實例選取策略為:優(yōu)先選取優(yōu)先級更高的備選微服務實例;
19、所述基于預設的微服務實例選取策略,從各備選微服務實例中確定出所述入站請求對應的目標微服務實例的步驟,包括:
20、獲取各備選微服務實例的優(yōu)先級,并從各備選微服務實例中將優(yōu)先級最高的備選微服務實例作為待選微服務實例;
21、從所述待選微服務實例中,隨機選取一個微服務實例作為所述入站請求對應的目標微服務實例。
22、在一實施例中,預設的微服務實例選取策略為:優(yōu)先選取cpu負載更低的備選微服務實例;
23、所述基于預設的微服務實例選取策略,從各備選微服務實例中確定出所述入站請求對應的目標微服務實例的步驟,包括:
24、獲取各備選微服務實例的cpu負載,并從各備選微服務實例中將cpu負載最低的備選微服務實例作為待選微服務實例;
25、從所述待選微服務實例中,隨機選取一個微服務實例作為所述入站請求對應的目標微服務實例。
26、在一實施例中,所述目標微服務實例匹配信息還包括所述入站請求對應的ip地址、用戶身份、查詢參數(shù)、請求方法、時間戳、設備信息、路徑模式中的至少一種。
27、此外,為實現(xiàn)上述目的,本技術還提供一種api網關,所述api網關包括:
28、接收模塊,用于在接收到客戶端發(fā)送的入站請求后,從所述入站請求中提取出目標微服務實例匹配信息,并確定所述入站請求對應的目標微服務,其中,所述目標微服務實例匹配信息包括所述入站請求對應的內容類型、接收內容類型、客戶端類型和網絡連接類型中的至少一種;
29、匹配模塊,用于基于所述目標微服務實例匹配信息,從所述目標微服務下的多個微服務實例中,匹配出所述入站請求對應的目標微服務實例;
30、路由模塊,用于獲取所述目標微服務實例對應的網絡地址,并基于所述網絡地址將所述入站請求路由至所述目標微服務實例。
31、此外,為實現(xiàn)上述目的,本技術還提供一種計算服務設備,所述計算服務設備包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述計算機程序被所述處理器執(zhí)行時實現(xiàn)如上述的微服務實例路由方法的步驟。
32、本技術提供一種微服務實例路由方法、api網關及計算服務設備,涉及api網關技術領域。該方法應用于api網關,包括:在接收到客戶端發(fā)送的入站請求后,從入站請求中提取出目標微服務實例匹配信息,并確定入站請求對應的目標微服務,其中,目標微服務實例匹配信息包括入站請求對應的內容類型、接收內容類型、客戶端類型和網絡連接類型中的至少一種;基于該目標微服務實例匹配信息,從目標微服務下的多個微服務實例中,匹配出入站請求對應的目標微服務實例;獲取該目標微服務實例對應的網絡地址,并基于該網絡地址將入站請求路由至該目標微服務實例。
33、與傳統(tǒng)的基于負載均衡算法的路由方式相比,本技術綜合考慮多種因素(如內容類型、接收內容類型、客戶端類型和網絡連接類型)作為微服務實例路由決策的依據(jù),通過多維度匹配信息對入站請求進行細粒度的分析和匹配,從而提高了api網關路由決策的靈活性和精準度,實現(xiàn)了精準的微服務實例路由,使得api網關不僅能夠更智能地選擇最適合處理請求的具體微服務實例,還能顯著提升系統(tǒng)的性能、可靠性和用戶體驗,進而動態(tài)適應不同的應用場景,提供更加個性化和優(yōu)化的服務,并優(yōu)化流量分配,提高資源利用率和服務響應速度,確保不同類型的客戶端在各種網絡條件下都能獲得最佳的服務體驗。