本发明专利技术提供了一种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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。