本發明專利技術提供了一種HTTP重試的方法和設備,該方法包括以下步驟:設置錯誤閾值參數;響應于接收到第一重試請求,通過HTTP進行重試并記錄重試次數;響應于重試次數達到錯誤閾值參數,將第一重試請求設定為錯誤請求并停止重試;響應于再次收到重試請求并且再次收到的重試請求與第一重試請求相同,僅進行一次重試;響應于重試得到正確返回,清除設定的錯誤請求。通過使用本發明專利技術的方法,能夠對HTTP重試機制進行改良,減少無意義的請求,節省服務和網絡資源,提升產品競爭力。
A method and device of HTTP retry
【技術實現步驟摘要】
一種HTTP重試的方法和設備
本領域涉及計算機領域,并且更具體地涉及一種HTTP重試的方法和設備。
技術介紹
由Kubernetes集群提供HTTP(超文本傳輸協議)服務,在服務端功能不穩定或者網絡狀況不佳時,可能會返回錯誤。很多情況下導致錯誤的原因比較復雜,而重試是一種簡單直接的辦法,尤其在工作環境比較復雜的場景下,可顯著提高總體的服務質量。重試應由HTTP客戶端發起,HTTP客戶端可能在瀏覽器中,也可能是另外一個服務,無論是要求客戶手動刷新還是代碼自動觸發,都不是理想解決方案,瀏覽器手動刷新會影響客戶體驗,而代碼觸發會造成很多冗余代碼。在現有的解決方案中,istio是一種較好的選擇。istio提供流量治理功能,可對kubernetes集群的流量進行管理,其中包含了HTTP重試機制,可設置重試次數、重試條件、超時時間。但是該方案帶來一個副作用,即增加了大量多余請求,加重了集群中HTTP服務端的負擔以及網絡負擔。在HTTP服務本身存在問題的情況下,是不可能正常回應請求的,這時重試請求沒有任何意義。
技術實現思路
有鑒于此,本專利技術實施例的目的在于提出一種HTTP重試的方法,能夠對HTTP重試機制進行改良,減少無意義的請求,節省服務和網絡資源,提升產品競爭力。基于上述目的,本專利技術的實施例的一個方面提供了一種HTTP重試的方法,包括以下步驟:設置錯誤閾值參數;響應于接收到第一重試請求,通過HTTP進行重試并記錄重試次數;響應于重試次數達到錯誤閾值參數,將第一重試請求設定為錯誤請求并停止重試;響應于再次收到重試請求并且再次收到的重試請求與第一重試請求相同,僅進行一次重試;響應于重試得到正確返回,清除設定的錯誤請求。根據本專利技術的一個實施例,重試次數達到錯誤閾值參數包括:相同重試請求的重試次數累加值等于錯誤閾值參數。根據本專利技術的一個實施例,再次收到的重試請求與第一重試請求相同包括:判斷請求類型是否相同、判斷URL是否相同、判斷請求體是否相同和判斷Cookie是否相同。根據本專利技術的一個實施例,響應于接收到第一重試請求,通過HTTP進行重試并記錄重試次數包括:每隔閾值時間對HTTP重試閾值次數。根據本專利技術的一個實施例,還包括:設置錯誤記憶參數,錯誤記憶參數為真時,錯誤閾值參數生效。本專利技術的實施例的另一個方面,還提供了一種HTTP重試的設備,其特征在于,設備包括:至少一個處理器;和存儲器,存儲器存儲有處理器可運行的程序代碼,程序代碼在被處理器運行時執行以下步驟:設置錯誤閾值參數;響應于接收到第一重試請求,通過HTTP進行重試并記錄重試次數;響應于重試次數達到錯誤閾值參數,將第一重試請求設定為錯誤請求并停止重試;響應于再次收到重試請求并且再次收到的重試請求與第一重試請求相同,僅進行一次重試;響應于重試得到正確返回,清除設定的錯誤請求。根據本專利技術的一個實施例,重試次數達到錯誤閾值參數包括:相同重試請求的重試次數累加值等于錯誤閾值參數。根據本專利技術的一個實施例,再次收到的重試請求與第一重試請求相同包括:判斷請求類型是否相同、判斷URL是否相同、判斷請求體是否相同和判斷Cookie是否相同。根據本專利技術的一個實施例,響應于接收到第一重試請求,通過HTTP進行重試并記錄重試次數包括:每隔閾值時間對HTTP重試閾值次數。根據本專利技術的一個實施例,程序代碼在被處理器運行時還執行以下步驟:設置錯誤記憶參數,錯誤記憶參數為真時,錯誤閾值參數生效。本專利技術具有以下有益技術效果:本專利技術實施例提供的HTTP重試的方法,通過設置錯誤閾值參數;響應于接收到重試請求,通過HTTP進行重試并記錄重試次數;響應于重試次數達到錯誤閾值參數,將重試請求設定為錯誤請求并停止重試;響應于再次收到重試請求并且再次收到的重試請求與上述重試請求相同,僅進行一次重試;響應于重試得到正確返回,清除設定的錯誤請求的技術方案,能夠對HTTP重試機制進行改良,減少無意義的請求,節省服務和網絡資源,提升產品競爭力。附圖說明為了更清楚地說明本專利技術實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的實施例。圖1為根據本專利技術一個實施例的HTTP重試的方法的示意性流程圖;圖2為根據本專利技術一個實施例的HTTP重試過程的示意圖;圖3為根據本專利技術一個實施例的HTTP重試過程的示意圖;圖4為根據本專利技術一個實施例的HTTP重試過程的示意圖。具體實施方式為使本專利技術的目的、技術方案和優點更加清楚明白,以下結合具體實施例,并參照附圖,對本專利技術實施例進一步詳細說明。基于上述目的,本專利技術的實施例的第一個方面,提出了一種HTTP重試的方法的一個實施例。圖1示出的是該方法的示意性流程圖。如圖1中所示,該方法可以包括以下步驟:S1設置錯誤閾值參數;S2響應于接收到第一重試請求,通過HTTP進行重試并記錄重試次數;S3響應于重試次數達到錯誤閾值參數,將第一重試請求設定為錯誤請求并停止重試;S4響應于再次收到重試請求并且再次收到的重試請求與第一重試請求相同,僅進行一次重試;S5響應于重試得到正確返回,清除設定的錯誤請求。在本專利技術的一些實施例中,提供一種針對kubernetes提供的HTTP服務的自動重試方法,基于istio提供的流量治理功能,實現HTTP重試功能。首先需要在kubernetes集群中部署istio,并為目標HTTP服務設置gateway和virtualService以實現對該服務的入口流量管理。在virtualService中,配置重試策略,除了istio原本支持的重試次數attempts、超時時間perTryTimeout、重試條件retryOn之外,本專利新增參數錯誤記憶errorCacheEnabled和錯誤閾值errorThreshold。錯誤記憶errorCacheEnabled默認值是False,即默認不開啟。修改為True時開啟,開啟后參數錯誤閾值errorThreshold生效(默認值是3)。該參數開啟后,會對收到的請求以及請求結果進行記憶,當一個請求連續返回retryOn指定的錯誤次數達到錯誤閾值errorThreshold時,標記此請求為錯誤(error)狀態,后續再次收到相同請求時,只執行一次重試操作。如果后續返回了正常狀態,則取消此請求的error狀態。通過以上技術方案,能夠對HTTP重試機制進行改良,減少無意義的請求,節省服務和網絡資源,提升產品競爭力。在本專利技術的一個優選實施例中,重試次數達到錯誤閾值參數包括:相同重試請求的重試次數累加值等于錯誤閾值參數。。每接收一次相同的重本文檔來自技高網...
【技術保護點】
1.一種HTTP重試的方法,其特征在于,包括以下步驟:/n設置錯誤閾值參數;/n響應于接收到第一重試請求,通過所述HTTP進行重試并記錄重試次數;/n響應于所述重試次數達到所述錯誤閾值參數,將所述第一重試請求設定為錯誤請求并停止重試;/n響應于再次收到重試請求并且所述再次收到的重試請求與所述第一重試請求相同,僅進行一次重試;/n響應于重試得到正確返回,清除設定的所述錯誤請求。/n
【技術特征摘要】
1.一種HTTP重試的方法,其特征在于,包括以下步驟:
設置錯誤閾值參數;
響應于接收到第一重試請求,通過所述HTTP進行重試并記錄重試次數;
響應于所述重試次數達到所述錯誤閾值參數,將所述第一重試請求設定為錯誤請求并停止重試;
響應于再次收到重試請求并且所述再次收到的重試請求與所述第一重試請求相同,僅進行一次重試;
響應于重試得到正確返回,清除設定的所述錯誤請求。
2.根據權利要求1所述的方法,其特征在于,所述重試次數達到所述錯誤閾值參數包括:相同重試請求的重試次數累加值等于所述錯誤閾值參數。
3.根據權利要求1所述的方法,其特征在于,所述再次收到的重試請求與所述第一重試請求相同包括:
判斷請求類型是否相同、判斷URL是否相同、判斷請求體是否相同和判斷Cookie是否相同。
4.根據權利要求1所述的方法,其特征在于,響應于接收到第一重試請求,通過所述HTTP進行重試并記錄重試次數包括:每隔閾值時間對HTTP重試閾值次數。
5.根據權利要求1所述的方法,其特征在于,還包括:設置錯誤記憶參數,所述錯誤記憶參數為真時,所述錯誤閾值參數生效。
6.一種HTTP重試的設備,其特征在于,所述設備包括:
至...
【專利技術屬性】
技術研發人員:張德波,
申請(專利權)人:蘇州浪潮智能科技有限公司,
類型:發明
國別省市:江蘇;32
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。