本發明專利技術涉及網關負載技術領域,提供一種基于Nacos的網關負載均衡方法,本發明專利技術的方法包括:業務方將獲取主機信息接口的插件掛載至集群服務,啟動集群服務;將掛載有獲取主機信息接口的插件的集群服務注冊至Nacos;API網關定時獲取注冊至Nacos的集群服務的主機資源信息,將獲取的集群服務的主機資源信息進行緩存;數據請求方調用API網關篩選獲取資源使用最低、最空閑、性能最高的服務器所部署的服務;采用篩選獲取的服務處理數據請求方的請求,將處理后的數據返回至數據請求方。本發明專利技術可以實現各個業務服務所在服務器的資源使用狀態讀取,提供給API網關請求分發之前進行判斷,以達到將請求分發到壓力最小、最空閑、性能最好的服務器上,使資源達到最優化使用。使資源達到最優化使用。使資源達到最優化使用。
【技術實現步驟摘要】
一種基于Nacos的網關負載均衡方法
[0001]本專利技術涉及網關負載
,尤其涉及一種基于Nacos的網關負載均衡方法。
技術介紹
[0002]隨著微服務及容器化部署的發展,API網關的作用越來越重要,既承擔著統一出入口的作用,也承擔著統一鑒權的作用,還承擔著請求分發、負載均衡的作用。以往服務提供方將自身所提供的服務能力注冊到注冊中心上如Nacos,API網關則能訪問所有的服務提供的能力。外部訪問API網關時,網關在根據負載均衡方法如隨機策略、輪訓策略、加權策略時,無法知曉服務提供方所在服務器的CPU壓力、內存使用比例、IO讀寫壓力情況、帶寬占用情況以及負載信息等,也就無法將請求轉發到空閑最大/壓力最小的服務上,無法得到最優方案,甚至有可能將請求轉發到壓力最大的服務上,從而導致壓力更大而服務崩潰,耗時陡增等情況。
[0003]因此,如何提供一種通過知曉各服務資源狀況使負載和請求分發更加合理的方法,成為亟待解決的技術問題。
技術實現思路
[0004]有鑒于此,為了克服現有技術的不足,本專利技術旨在提供一種基于Nacos的網關負載均衡方法,用于解決API網關無法知曉服務器資源使用狀態以及資源無法最優化使用的問題。
[0005]本專利技術提供一種基于Nacos的網關負載均衡方法,包括:
[0006]步驟S1:業務方將獲取主機信息接口的插件掛載至集群服務,啟動集群服務;
[0007]步驟S2:將掛載有獲取主機信息接口的插件的集群服務注冊至Nacos;
[0008]步驟S3:API網關定時獲取注冊至Nacos的集群服務的主機資源信息,將獲取的集群服務的主機資源信息進行緩存;
[0009]步驟S4:數據請求方調用API網關篩選獲取資源使用最低、最空閑、性能最高的服務器所部署的服務;
[0010]步驟S5:采用步驟S4篩選獲取的服務處理數據請求方的請求,將處理后的數據返回至數據請求方。
[0011]作為本專利技術的優選,步驟S2包括:在啟動集群服務后,將獲取主機信息接口的插件中的資源實時獲取接口注冊至Nacos上,所述資源實時獲取接口用于查詢集群服務所在主機的資源信息。
[0012]作為本專利技術的優選,步驟S3中,API網關定時獲取注冊至Nacos的集群服務的主機資源信息,包括:API網關掛載負載均衡的插件,所述插件包括一個定時任務,所述定時任務用于以一定的執行頻率調用注冊在Nacos上的資源實時獲取接口,獲取對應的集群服務所在主機的資源信息。
[0013]作為本專利技術的優選,步驟S3中,將獲取的集群服務的主機資源信息進行緩存,包
括:API網關以服務為維度將獲取的各個服務集群所在主機的資源信息緩存至Redis中。
[0014]作為本專利技術的優選,步驟S4,包括:
[0015]步驟S41:數據請求方調用相應的網關API,根據路徑獲取所述網關API所屬的服務;
[0016]步驟S42:API網關根據步驟S41獲取服務的名稱從Redis中獲取對應的主機的資源信息;
[0017]步驟S43:API網關根據獲取的主機的資源信息,篩選資源使用最低、最空閑、性能最高的服務器所部署的服務。
[0018]作為本專利技術的優選,步驟S42中,主機的資源信息包括CPU使用率、內存使用率、IO讀寫率、帶寬使用率以及連接數。
[0019]作為本專利技術的優選,步驟S43中,按照CPU使用率、內存使用率、IO讀寫率、帶寬使用率以及連接數依次降低的優先級對服務器所部署的服務進行篩選。
[0020]作為本專利技術的優選,步驟S4包括:當從Redis中未獲取到對應的主機的資源信息,按照輪詢的方式調用集群服務。
[0021]作為本專利技術的優選,步驟S5包括:API網關將數據請求方的請求轉發到步驟S4篩選獲取的服務,所述服務收到數據請求方的請求進行處理,將處理處理得到的數據返回至數據請求方。
[0022]最后,本專利技術還提供一種計算機設備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述處理器執行所述程序時實現上述基于Nacos的網關負載均衡方法。
[0023]本專利技術基于Nacos的網關負載均衡方法,具有以下有益效果:
[0024]1.可以實現各個業務服務所在服務器的資源使用狀態讀取,提供給API網關請求分發之前進行判斷,以達到將請求分發到壓力最小、最空閑、性能最好的服務器上,使資源達到最優化使用。
[0025]2.可以將各個服務提供的服務器資源情況進行匯總,分析出當前的服務節點是否夠用,使用需要擴容,提供出一個資源接口供運維實現告警及人工干預進行擴容,亦或是根據提供的分析匯總數據由運維配置進行自動擴容。
附圖說明
[0026]為了更清楚地說明本專利技術實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。
[0027]圖1為本專利技術示例性第一實施例一種基于Nacos的網關負載均衡方法的流程圖。
[0028]圖2為本專利技術示例性第一實施例的一種基于Nacos的網關負載均衡方法的技術原理示意圖。
[0029]圖3為根據本專利技術示例性第三實施例的一種基于Nacos的網關負載均衡方法的流程圖。
[0030]圖4為根據本專利技術示例性第三實施例的一種基于Nacos的網關負載均衡方法的時序圖。
[0031]圖5為本專利技術提供的設備的結構示意圖。
具體實施方式
[0032]下面結合附圖對本專利技術實施例進行詳細描述。
[0033]需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合;并且,基于本公開中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本公開保護的范圍。
[0034]需要說明的是,下文描述在所附權利要求書的范圍內的實施例的各種方面。應顯而易見,本文中所描述的方面可體現于廣泛多種形式中,且本文中所描述的任何特定結構及/或功能僅為說明性的。基于本公開,所屬領域的技術人員應了解,本文中所描述的一個方面可與任何其它方面獨立地實施,且可以各種方式組合這些方面中的兩者或兩者以上。舉例來說,可使用本文中所闡述的任何數目個方面來實施設備及/或實踐方法。另外,可使用除了本文中所闡述的方面中的一或多者之外的其它結構及/或功能性實施此設備及/或實踐此方法。
[0035]本專利技術的技術原理如下:
[0036]本專利技術提供了一種將Nacos作為注冊中心的API網關負載均衡方法,實現各個業務服務所在服務器的資源使用狀態讀取,提供給API網關請求分發之前進行判斷,以達到將請求分發到壓力最小、最空閑、性能最好的服務器上,使資源達到最優化使用。還可以將各個服務提供的服務器資源情況進行匯總,分析出當前的服務節點是否夠用,使用需要擴容,提供出一個資源接口供運本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種基于Nacos的網關負載均衡方法,其特征在于,所述方法包括:步驟S1:業務方將獲取主機信息接口的插件掛載至集群服務,啟動集群服務;步驟S2:將掛載有獲取主機信息接口的插件的集群服務注冊至Nacos;步驟S3:API網關定時獲取注冊至Nacos的集群服務的主機資源信息,將獲取的集群服務的主機資源信息進行緩存;步驟S4:數據請求方調用API網關篩選獲取資源使用最低、最空閑、性能最高的服務器所部署的服務;步驟S5:采用步驟S4篩選獲取的服務處理數據請求方的請求,將處理后的數據返回至數據請求方。2.根據權利要求1所述的基于Nacos的網關負載均衡方法,其特征在于,步驟S2包括:在啟動集群服務后,將獲取主機信息接口的插件中的資源實時獲取接口注冊至Nacos上,所述資源實時獲取接口用于查詢集群服務所在主機的資源信息。3.根據權利要求1所述的基于Nacos的網關負載均衡方法,其特征在于,步驟S3中,API網關定時獲取注冊至Nacos的集群服務的主機資源信息,包括:API網關掛載負載均衡的插件,所述插件包括一個定時任務,所述定時任務用于以一定的執行頻率調用注冊在Nacos上的資源實時獲取接口,獲取對應的集群服務所在主機的資源信息。4.根據權利要求1所述的基于Nacos的網關負載均衡方法,其特征在于,步驟S3中,將獲取的集群服務的主機資源信息進行緩存,包括:API網關以服務為維度將獲取的各個服務集群所在主機的資源信息緩存至Redis中。5.根據權利要求1所述的基于Nacos...
【專利技術屬性】
技術研發人員:陳于,黃寶財,
申請(專利權)人:光控特斯聯上海信息科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。