CN116016675A - 一种服务请求处理方法、装置、网关设备及存储介质 - Google Patents

一种服务请求处理方法、装置、网关设备及存储介质 Download PDF

Info

Publication number
CN116016675A
CN116016675A CN202211532697.8A CN202211532697A CN116016675A CN 116016675 A CN116016675 A CN 116016675A CN 202211532697 A CN202211532697 A CN 202211532697A CN 116016675 A CN116016675 A CN 116016675A
Authority
CN
China
Prior art keywords
service
request
working state
response
acquiring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211532697.8A
Other languages
English (en)
Other versions
CN116016675B (zh
Inventor
于宗潍
张骏杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202211532697.8A priority Critical patent/CN116016675B/zh
Publication of CN116016675A publication Critical patent/CN116016675A/zh
Application granted granted Critical
Publication of CN116016675B publication Critical patent/CN116016675B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例涉及一种服务请求处理方法、装置、网关设备及存储介质,所述方法包括:在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接;当确定所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;将所述模拟数据结果返回所述第一服务。由此可以实现跨语言、场景的熔断,缓解了服务过载的现象,降低研发成本,提升服务处理的效率。

Description

一种服务请求处理方法、装置、网关设备及存储介质
技术领域
本发明实施例涉及互联网技术领域,尤其涉及一种服务请求处理方法、装置、网关设备及存储介质。
背景技术
服务熔断一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施。由于现有的编程语言种类很多,各种语言的熔断方案都不尽相同,并且需要由调用方逐个定义,同时也有部分语言暂时没有熔断方案。
因此,在现有技术中没有统一的熔断方案,且熔断组件开发成本高、可用性、易用性等需要持续优化才能用于生产环境,容易使服务出现过载现象,造成系统故障。
发明内容
鉴于此,为解决上述服务出现过载现象的技术问题,本发明实施例提供一种服务请求处理方法、装置、网关设备及存储介质。
第一方面,本发明实施例提供一种服务请求处理方法,应用于网关,包括:
在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接;
当确定所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;
将所述模拟数据结果返回所述第一服务。
在一个可能的实施方式中,所述获取第二服务的工作状态,包括:
获取预设时间段内所述第二服务针对请求的响应成功率;
获取预设时间段内所述第二服务针对请求的平均响应时间;
当所述响应成功率小于或等于所述第一阈值时,确定所述工作状态为所述第一负载状态;
或,
当所述平均响应时间大于或等于所述第二阈值时,确定所述工作状态为所述第一负载状态。
在一个可能的实施方式中,所述获取第二服务的工作状态,还包括:
当所述响应成功率大于第一阈值,且所述平均响应时间小于第二阈值时,确定所述工作状态为第二负载状态。
在一个可能的实施方式中,所述方法还包括:当所述工作状态为所述第二负载状态时,将所述目标请求发送至所述第二服务,以使所述第二服务执行所述目标请求对应的操作。
在一个可能的实施方式中,所述获取第二服务的工作状态,包括:
获取所述第二服务在当前周期内的平均响应成功率;
确定前一周期的平均响应成功率与当前周期的平均响应成功率的差值;
当所述差值大于第三阈值时,确定所述工作状态为第一负载状态。
在一个可能的实施方式中,所述获取第二服务的工作状态,包括:
获取所述第二服务在当前周期的平均响应时间;
确定当前周期的平均响应时间与前一周期的平均响应时间的差值;
当所述差值大于第四阈值时,确定所述工作状态为所述第一负载状态。
在一个可能的实施方式中,所述方法还包括:
每隔预设时间段,获取所述第二服务在所述预设时间段内第一次返回目标状态码时对应的响应结果,所述目标状态码由所述第二服务响应于请求生成;
将所述响应结果作为所述目标请求对应的模拟数据结果。
在一个可能的实施方式中,所述将所述模拟数据结果返回所述第一服务之后,所述方还包括:
将所述目标请求进行存储;
每间隔预设时间段,获取所述第二服务的工作状态;
当所述工作状态由所述第一负载状态切换为第二负载状态时,将所述目标请求发送至所述第二服务;
接收所述第二服务返回的响应结果并进行存储。
第二方面,本发明实施例提供一种服务请求处理装置,包括:
获取模块,用于在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关包含所述第二服务的应用程序接口;
生成模块,用于当所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;
发送模块,用于将所述模拟数据结果返回所述第一服务。
第三方面,本发明实施例提供一种网关设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的服务请求处理程序,以实现上述第一方面中任一项所述的服务请求处理方法。
第四方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面中任一项所述的服务请求处理方法。
本发明实施例提供的服务请求处理方案,在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接;当确定所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;将所述模拟数据结果返回所述第一服务。以实现跨语言、场景的熔断,缓解了服务过载的现象,降低研发成本,提升服务处理的效率。
附图说明
图1为本发明实施例提供的一种服务请求处理方法的流程示意图;
图2为本发明实施例提供的另一种服务请求处理方法的流程示意图;
图3为本发明实施例提供的再一种服务请求处理方法的流程示意图;
图4为本发明实施例提供的又一种服务请求处理方法的流程示意图;
图5为本发明实施例提供的一种服务请求处理装置的结构示意图;
图6为本发明实施例提供的一种网关设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图1为本发明实施例提供的一种服务请求处理方法的流程示意图,如图1所示,该方法具体包括:
S11、在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接。
本发明实施例提供的服务请求处理方法应用于网关,该网关可以是熔断网关,为第二服务提供接入的入口,可通过网关对第二服务进行熔断操作,第一服务可通过网关调用第二服务。具体通过在网关接收到第一服务的请求时判断第二服务的状态,根据第二服务的状态向第一服务返回响应结果,以实现减少第二服务的处理压力。
在本实施例中,第一服务为调用端,第二服务为被调用端,第一服务通过发送请求以调用第二服务,并接收响应于该请求返回的结果。第二服务可以有一个唯一的应用程序接口(Application Programming Interface,api)demo.domain/demo),该接口可以是demo.domain/demo,第二服务预先将自己的API对接到网关。
进一步的,第一服务将对第二服务的调用方式调整为发送到网关demo.domain/demo,也即,当第一服务生成目标请求并发送到第二服务时,会经过网关,网关基于目标请求根据获取第二服务当前的工作状态,工作状态可以包括但不限于:第二服务过载、第二服务故障、第二服务正常等。
具体的,获取工作状态的方法可以包括:获取网关在最近一段时间内的平均响应时间、响应成功率等,根据平均响应时间所处的阈值范围,和\或响应成功率所处的阈值范围确定第二服务当前的工作状态,其中不同阈值范围对应不同工作状态。
在一个可能的实施方式中,预先在网关中进行配置,配置的内容可以包括但不限于:判断第二服务当前工作状态的条件(例如,用于判断平均响应时间、响应成功率的阈值范围),以及第二服务当前的工作状态对应的模拟数据结果(mock结果)。以使配置后的网关在接收到目标请求后可以快速准确的判断工作状态。
S12、当确定所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果。
在本实施例中,第一负载状态表征第二服务当前无法处理目标请求,例如第一负载状态可以是:第二服务过载或第二服务故障。此时网关不会将目标请求发送至第二服务,而是进行熔断保护。
具体的,网关中预先设置有模拟数据结果,每个类型的请求对应至少一个模拟数据结果,当第二服务处于第一负载状态时,确定目标请求对应的模拟数据结果。
S13、将所述模拟数据结果返回所述第一服务。
在本实施例中,将模拟数据结果作为响应于目标请求的数据,将模拟数据结果返回第一服务,此时第一服务会将收到的模拟数据结果作为响应数据,保证了对第一服务的请求的响应速度。
在一个可能的实施方式中,当所述工作状态为所述第二负载状态时,表征第二服务工作状态为正常负载,可以正常处理目标服务,此时网关会进行流量放行,也即将目标请求发送至第二服务,以使第二服务执行目标请求对应的操作,并由第二服务生成响应于目标请求的响应结果后,将响应结果返回第一服务。
本发明实施例提供的服务请求处理方法,通过在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接;当确定所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;将所述模拟数据结果返回所述第一服务。以通过熔断网关实现跨语言、跨场景的熔断,缓解了服务过载的现象,降低研发成本,提升服务请求的效率。
图2为本发明实施例提供的另一种服务请求处理方法的流程示意图,如图2所示,该方法具体包括:
S21、预先在网关中进行配置。
在本实施例中,当第二服务将自己的api对接到熔断网关后,对网关进行配置,配置的内容可以包括但不限于:(1)、当第二服务为第一负载状态时,向第一服务返回的mock结果,不同请求可以对应不同的mock结果,例如,mock结果可以是‘result’:’mock’,’msg’:’error,return mock result’等。
(2)、响应时间阈值,用于与第二服务在预设时间段内的平均响应时间做对比,例如,响应时间阈值可以是:800ms,当平均响应时间超过该值时直接为第一服务返回mock接口,以使第一服务接收到预先设置的mock结果。
(3)响应成功率阈值,用于与第二服务在预设时间段内的响应成功率做对比。例如95%,当响应成功率低于该值时直接为第一服务返回mock接口,以使第一服务接收到预先设置的mock结果。
S22、在接收到第一服务的目标请求时,获取预设时间段内所述第二服务针对请求的响应成功率;获取预设时间段内所述第二服务针对请求的平均响应时间。
在本实施例中,网关接收到第一服务发送的目标请求时,网关会实时计算第二服务服务接口demo.domain/demo的健康状态,也即,基于目标请求获取第二服务在预设时间段内针对多个请求的响应成功率和平均响应时间。
具体的,设置预设时间段(例如,5分钟),网关获取预设时间段内第二服务返回的2xx、3xx状态码的占比,得到响应成功率。获取预设时间段内每一次的响应时间,并根据每一次的响应时间和响应次数确定平均响应时间。
S23、当所述响应成功率小于或等于所述第一阈值时,确定所述工作状态为所述第一负载状态;或,当所述平均响应时间大于或等于所述第二阈值时,确定所述工作状态为所述第一负载状态。
在本实施例中,预先设置第一阈值,第一阈值为步骤S21中的响应成功率阈值,当响应成功率小于或等于第一阈值时,说明第二服务无法处理目标请求,或处理目标请求的成功率较低,此时确定第二服务而工作状态为第一负载状态,第一负载状态表征第二服务此时为过载或故障。或,预先设置第二阈值,第二阈值为步骤S21中的平均响应时间阈值,当平均响应时间大于或等于第一阈值时,说明第二服务无法处理目标请求,或处理目标请求的时间较长,此时确定第二服务而工作状态为第一负载状态。
在一个可能的实施方式中,当响应成功率大于第一阈值,且平均响应时间小于第二阈值时,确定工作状态为第二负载状态,第二负载状态表征第二服务为健康状态,可以正常处理目标请求。当工作状态为第二负载状态时,网关可以直接将目标请求发送至所第二服务,以使第二服务执行所述目标请求对应的操作,并响应于目标请求向第一服务返回目标请求对应的响应结果。
S24、将所述模拟数据结果返回所述第一服务。
在本实施例中,当确定工作状态为第一负载状态时,网关从预先配置的mock结果中确定目标请求对应的目标mock结果作为模拟数据结果,并将模拟数据结果返回至第一服务。
S25、将所述目标请求进行存储;每间隔预设时间段,获取所述第二服务的工作状态;当所述工作状态由所述第一负载状态切换为第二负载状态时,将所述目标请求发送至所述第二服务;接收第二服务返回的响应结果并进行存储。
在本实施例中,返回模拟数据结果后,网关将目标请求存储至网关中的存储区域,每间隔预设时间段重复获取在预设时间段内的第二服务的工作状态,当工作状态由第一负载状态切换为第二负载状态时,说明此时第二服务可以正常处理目标请求,此时网关可正常放行目标请求,将目标请求发送至第二服务后,网关接收第二服务返回的响应结果,根据该响应结果对网关中存储的模拟数据结果进行更新,或,将响应结果作为目标请求对应的模拟数据结果存储在网关中,以实现在下次接收到相同的目标请求,且第二服务为第一负载状态时,可以直接将该响应结果进行返回。在一个可能的实施方式中,可将响应结果重新返回至第一服务。
本发明实施例提供的服务请求处理方法,通过预先在网关中进行配置;在接收到第一服务的目标请求时,获取预设时间段内第二服务针对请求的响应成功率;获取预设时间段内第二服务针对请求的平均响应时间;当响应成功率小于或等于第一阈值时,确定工作状态为第一负载状态;或,当平均响应时间大于或等于第二阈值时,确定工作状态为第一负载状态;将模拟数据结果返回第一服务;将目标请求进行存储;每间隔预设时间段,获取第二服务的工作状态;当工作状态由第一负载状态切换为第二负载状态时,将目标请求发送至第二服务;接收第二服务返回的响应结果并进行存储。由此可实现熔断方案与编程语言无关,不侵入业务,不会因此对业务代码产生影响,任何语言均可使用,且通过网关控制熔断解决了服务过载的问题,使熔断方案的开发成本降低,配置简单,提升用户体验,及时熔断保证用户侧服务的可用性。
图3为本发明实施例提供的再一种服务请求处理方法的流程示意图,如图3所示,该方法具体包括:
S31、在接收到第一服务的目标请求时,获取所述第二服务在当前周期内的平均响应成功率;确定前一周期的平均响应成功率与当前周期的平均响应成功率的差值;当所述差值大于第三阈值时,确定所述工作状态为第一负载状态。
在本实施例中,若未预先配置步骤S21中的内容,网关则进行智能熔断,也即根据不同周期内响应成功率的变化情况,以及平均响应时间的变化情况确定第二服务的工作状态,具体通过计算响应成功率的移动平均值和平均响应时间的移动平均值。
移动平均值算法可以包括:熔断网关每隔预设时间段记录1个指标值,每个周期内有多个预设时间段,故每个周期内我们将响应成功率指标记录为rate1、rate2、rate3…响应时间指标记录为time1、time2、time3…用第t期的移动平均数Mt作为第t+1期的预测值,式中,yt、yt-1…分别代表第t、t-1…期的观察值(也即rate1或time1);N为平均项数。
Figure BDA0003970819710000101
通过该公式可以计算出平均响应成功率和平均响应时间。
具体的,预先设置每个周期的时长(例如,10分钟),网关获取第二服务在当前周期内每个预设时间段(例如,1分钟)的响应成功率,得到多个响应成功率,并根据多个响应成功率的数量确定当前周期的平均响应成功率,以此类推确定前一周期的平均响应成功率,进一步的,确定前一周期的平均响应成功率与当前周期的平均响应成功率的差值,当差值大于第三阈值时,说明当前周期响应成功率相比于前一周期有明显的下降,此时确定工作状态为第一负载状态。
在一个可能的实施方式中,获取第二服务在当前周期的平均响应时间;确定当前周期的平均响应时间与前一周期的平均响应时间的差值;当差值大于第四阈值时,确定工作状态为所述第一负载状态。
具体的,网关获取第二服务在当前周期内的对每次请求的响应时间,根据响应次数和每次的响应时间确定平均响应时间,以此类推确定前一周期的平均响应时间,进一步的,确定前一周期的平均响应时间与当前周期的平均响应时间的差值,当差值大于第四阈值时,说明当前响应时间相比于前一周期有明显的增长,此时确定工作状态为第一负载状态。
在一个可能的实施方式中,获取当前时刻对应的周期内的第一平均响应成功率,以及获取前24小时与当前时刻相同的时刻对应的周期内的第二平均响应成功率,确定第二平均响应成功率与第一平均响应成功率的差值,当差值大于第五阈值时,确定工作状态为第一负载状态。
在一个可能的实施方式中,获取当前时刻对应的周期内的第一平均响应时间,以及获取前24小时与当前时刻相同的时刻对应的周期内的第二平均响应时间,确定第二平均响应时间与第一平均响应时间的差值,当差值大于第六阈值时,确定工作状态为第一负载状态。
S32、每隔预设时间段,获取所述第二服务在所述预设时间段内第一次返回目标状态码时对应的响应结果;将所述响应结果作为所述目标请求对应的模拟数据结果。
在本实施中,每间隔预设时间段或预设周期获取在当前时间段或当前周期内,第二服务是否返回过目标状态码,当判断结果为是时,获取第一次返回目标状态码时对应的响应结果,将响应结果作为目标请求对应的模拟数据结果并存储在网关中,其中,目标状态码为第二服务响应于预设时间段或预设周期内的请求生成,可以是200状态码。
进一步的,当时间进入到下一时间段或下一周期后,基于下一时间段或下一周期内收到的目标状态码对响应结果进行更新。
S33、当所述工作状态为第一负载状态时,将所述模拟数据结果返回所述第一服务。
在本实施例中,与步骤S13相似,具体描述请参照S13,在本实施例中不做赘述。
本发明实施例提供的服务请求处理方法,通过在接收到第一服务的目标请求时,获取所述第二服务在当前周期内的平均响应成功率;确定前一周期的平均响应成功率与当前周期的平均响应成功率的差值;当所述差值大于第三阈值时,确定所述工作状态为第一负载状态;每隔预设时间段,获取所述第二服务在所述预设时间段内第一次返回目标状态码时对应的响应结果;将所述响应结果作为所述目标请求对应的模拟数据结果;当所述工作状态为第一负载状态时,将所述模拟数据结果返回所述第一服务。由此可以实现,当第二服务过载时,也可及时向第一服务返回响应结果,提升用户体验,避免增加第二服务的处理负担,提升服务处理的效率。
作为一个例子,图4为本发明实施例提供的又一种服务请求处理方法。如图4所示,该方法包括:服务A为第一服务,服务B为第二服务,服务A调用服务B的接口,B服务有唯一接口demo.domain/demo。
1、B服务将自己的api对接到熔断网关,并可选择性配置以下选项(亦可不做配置)
(1)失败时返回的mock结果,如{‘result’:’mock’,’msg’:’error,return mockresult’}
(2)第一阈值为800ms,当平均响应时间超过该值时直接为服务A返回mock接口;
(3)第二阈值为95%,当响应成功率低于该值时直接为调用方返回mock接口。
2、A服务将对B服务的调用方式调整为发送到熔断网关demo.domain/demo。
3、当A的请求发送到B时会经过熔断网关,网关会实时计算B服务接口demo.domain/demo中2xx、3xx状态码的占比作为响应成功率的指标值,以及获取响应时间作为响应时间的指标值,每1分钟(该值可配置)记录1个指标值。
如果对B服务未做配置,则网关进行智能熔断,根据指标值确定平均响应成功率和平均响应时间,包括:
i.记录B服务第一次返回200状态码时的响应结果并保存,并保持每5分钟更新一次此接口的最新响应结果,若没有最新的200状态码结果,则不更新该记录;
ii.流量接入后,以响应成功率、响应时间10分钟内的移动平均值为基准,当前时刻平均响应成功率指标值下跌10%(该值可配置)、或平均响应时间指标值上涨100%时(该值可配置)认为服务B处于第一负载状态,则开启熔断,为服务A返回i中记录的响应结果;
iii.接入24小时后,在ii基础上增加24小时前的同时刻的响应成功率、响应时间的对比,当前时刻响应成功率指标值下跌10%(该值可配置)、或响应时间指标值上涨100%(该值可配置)时认为服务B为第二负载状态,则开启熔断,为服务A返回i中记录的返回结果;
iv.开启熔断后,网关开启对B服务的探测,复制A的调用请求发送到B,并持续检查B服务的健康状态,待恢复后关闭熔断,正常放行流量。
图5为本发明实施例提供的一种服务请求处理装置的结构示意图,如图5所述,该装置具体包括:
获取模块51,用于在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接;
生成模块52,用于当所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;
发送模块53,用于将所述模拟数据结果返回所述第一服务。
在一个可能的实施方式中,所述获取模块,具体用于获取预设时间段内所述第二服务针对请求的响应成功率;
获取预设时间段内所述第二服务针对请求的平均响应时间;
确定模块54,用于当所述响应成功率小于或等于所述第一阈值时,确定所述工作状态为所述第一负载状态;
或,
当所述平均响应时间大于或等于所述第二阈值时,确定所述工作状态为所述第一负载状态。
在一个可能的实施方式中,所述确定模块,具体用于当所述响应成功率大于第一阈值,且所述平均响应时间小于第二阈值时,确定所述工作状态为第二负载状态。
在一个可能的实施方式中,所述发送模块,还用于当所述工作状态为所述第二负载状态时,将所述目标请求发送至所述第二服务,以使所述第二服务执行所述目标请求对应的操作。
在一个可能的实施方式中,所述获取模块,具体用于获取所述第二服务在当前周期内的平均响应成功率;
所述确定模块,具体用于确定前一周期的平均响应成功率与当前周期的平均响应成功率的差值;
当所述差值大于第三阈值时,确定所述工作状态为第一负载状态。
在一个可能的实施方式中,所述获取模块,具体用于获取所述第二服务在当前周期的平均响应时间;
所述确定模块,具体用于确定当前周期的平均响应时间与前一周期的平均响应时间的差值;
当所述差值大于第四阈值时,确定所述工作状态为所述第一负载状态。
在一个可能的实施方式中,所述获取模块,还用于每隔预设时间段,获取所述第二服务在所述预设时间段内第一次返回目标状态码时对应的响应结果,所述目标状态码由所述第二服务响应于请求生成;
所述确定模块,还用于将所述响应结果作为所述目标请求对应的模拟数据结果。
在一个可能的实施方式中,存储模块,用于将所述目标请求进行存储;
所述获取模块,还用于每间隔预设时间段,获取所述第二服务的工作状态;
所述发送模块,还用于当所述工作状态由所述第一负载状态切换为第二负载状态时,将所述目标请求发送至所述第二服务。
本实施例提供的服务请求处理装置可以是如图5中所示的装置,可执行如图1-4中服务请求处理方法的所有步骤,进而实现图1-4所示服务请求处理方法的技术效果,具体请参照图1-4相关描述,为简洁描述,在此不作赘述。
图6为本发明实施例提供的一种网关设备的结构示意图,图6所示的网关设备600包括:至少一个处理器601、存储器602、至少一个网络接口604和其他用户接口603。网关设备600中的各个组件通过总线系统605耦合在一起。可理解,总线系统605用于实现这些组件之间的连接通信。总线系统605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统605。
其中,用户接口603可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器602旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器602存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统6021和应用程序6022。
其中,操作系统6021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序6022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序6022中。
在本发明实施例中,通过调用存储器602存储的程序或指令,具体的,可以是应用程序6022中存储的程序或指令,处理器601用于执行各方法实施例所提供的方法步骤,例如包括:
在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接;
当确定所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;
将所述模拟数据结果返回所述第一服务。
在一个可能的实施方式中,获取预设时间段内所述第二服务针对请求的响应成功率;
获取预设时间段内所述第二服务针对请求的平均响应时间;
当所述响应成功率小于或等于所述第一阈值时,确定所述工作状态为所述第一负载状态;
或,
当所述平均响应时间大于或等于所述第二阈值时,确定所述工作状态为所述第一负载状态。
在一个可能的实施方式中,当所述响应成功率大于第一阈值,且所述平均响应时间小于第二阈值时,确定所述工作状态为第二负载状态。
在一个可能的实施方式中,当所述工作状态为所述第二负载状态时,将所述目标请求发送至所述第二服务,以使所述第二服务执行所述目标请求对应的操作。
在一个可能的实施方式中,获取所述第二服务在当前周期内的平均响应成功率;
确定前一周期的平均响应成功率与当前周期的平均响应成功率的差值;
当所述差值大于第三阈值时,确定所述工作状态为第一负载状态。
在一个可能的实施方式中,获取所述第二服务在当前周期的平均响应时间;
确定当前周期的平均响应时间与前一周期的平均响应时间的差值;
当所述差值大于第四阈值时,确定所述工作状态为所述第一负载状态。
在一个可能的实施方式中,每隔预设时间段,获取所述第二服务在所述预设时间段内第一次返回目标状态码时对应的响应结果,所述目标状态码由所述第二服务响应于请求生成;
将所述响应结果作为所述目标请求对应的模拟数据结果。
在一个可能的实施方式中,将所述目标请求进行存储;
每间隔预设时间段,获取所述第二服务的工作状态;
当所述工作状态由所述第一负载状态切换为第二负载状态时,将所述目标请求发送至所述第二服务。
上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的网关设备可以是如图6中所示的网关设备,可执行如图1-4中服务请求处理方法的所有步骤,进而实现图1-4所示服务请求处理方法的技术效果,具体请参照图1-4相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在设备侧执行的服务请求处理方法。
所述处理器用于执行存储器中存储的服务请求处理程序,以实现以下在设备侧执行的服务请求处理方法的步骤:
在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接;
当确定所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;
将所述模拟数据结果返回所述第一服务。
在一个可能的实施方式中,获取预设时间段内所述第二服务针对请求的响应成功率;
获取预设时间段内所述第二服务针对请求的平均响应时间;
当所述响应成功率小于或等于所述第一阈值时,确定所述工作状态为所述第一负载状态;
或,
当所述平均响应时间大于或等于所述第二阈值时,确定所述工作状态为所述第一负载状态。
在一个可能的实施方式中,当所述响应成功率大于第一阈值,且所述平均响应时间小于第二阈值时,确定所述工作状态为第二负载状态。
在一个可能的实施方式中,当所述工作状态为所述第二负载状态时,将所述目标请求发送至所述第二服务,以使所述第二服务执行所述目标请求对应的操作。
在一个可能的实施方式中,获取所述第二服务在当前周期内的平均响应成功率;
确定前一周期的平均响应成功率与当前周期的平均响应成功率的差值;
当所述差值大于第三阈值时,确定所述工作状态为第一负载状态。
在一个可能的实施方式中,获取所述第二服务在当前周期的平均响应时间;
确定当前周期的平均响应时间与前一周期的平均响应时间的差值;
当所述差值大于第四阈值时,确定所述工作状态为所述第一负载状态。
在一个可能的实施方式中,每隔预设时间段,获取所述第二服务在所述预设时间段内第一次返回目标状态码时对应的响应结果,所述目标状态码由所述第二服务响应于请求生成;
将所述响应结果作为所述目标请求对应的模拟数据结果。
在一个可能的实施方式中,将所述目标请求进行存储;
每间隔预设时间段,获取所述第二服务的工作状态;
当所述工作状态由所述第一负载状态切换为第二负载状态时,将所述目标请求发送至所述第二服务。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种服务请求处理方法,其特征在于,应用于网关,包括:
在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接;
当确定所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;
将所述模拟数据结果返回所述第一服务。
2.根据权利要求1所述的方法,其特征在于,所述获取第二服务的工作状态,包括:
获取预设时间段内所述第二服务针对请求的响应成功率;
获取预设时间段内所述第二服务针对请求的平均响应时间;
当所述响应成功率小于或等于所述第一阈值时,确定所述工作状态为所述第一负载状态;
或,
当所述平均响应时间大于或等于所述第二阈值时,确定所述工作状态为所述第一负载状态。
3.根据权利要求2所述的方法,其特征在于,所述获取第二服务的工作状态,还包括:
当所述响应成功率大于第一阈值,且所述平均响应时间小于第二阈值时,确定所述工作状态为第二负载状态。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述工作状态为所述第二负载状态时,将所述目标请求发送至所述第二服务,以使所述第二服务执行所述目标请求对应的操作。
5.根据权利要求1所述的方法,其特征在于,所述获取第二服务的工作状态,包括:
获取所述第二服务在当前周期内的平均响应成功率;
确定前一周期的平均响应成功率与当前周期的平均响应成功率的差值;
当所述差值大于第三阈值时,确定所述工作状态为第一负载状态。
6.根据权利要求1所述的方法,其特征在于,所述获取第二服务的工作状态,包括:
获取所述第二服务在当前周期的平均响应时间;
确定当前周期的平均响应时间与前一周期的平均响应时间的差值;
当所述差值大于第四阈值时,确定所述工作状态为所述第一负载状态。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
每隔预设时间段,获取所述第二服务在所述预设时间段内第一次返回目标状态码时对应的响应结果,所述目标状态码由所述第二服务响应于请求生成;
将所述响应结果作为所述目标请求对应的模拟数据结果。
8.根据权利要求1所述的方法,其特征在于,所述将所述模拟数据结果返回所述第一服务之后,所述方还包括:
将所述目标请求进行存储;
每间隔预设时间段,获取所述第二服务的工作状态;
当所述工作状态由所述第一负载状态切换为第二负载状态时,将所述目标请求发送至所述第二服务;
接收所述第二服务返回的响应结果并进行存储。
9.一种服务请求处理装置,其特征在于,包括:
获取模块,用于在接收到第一服务的目标请求时,获取第二服务的工作状态,所述网关与所述第二服务的应用程序接口连接;
生成模块,用于当所述工作状态为第一负载状态时,响应于所述目标请求生成模拟数据结果;
发送模块,用于将所述模拟数据结果返回所述第一服务。
10.一种网关设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的服务请求处理程序,以实现权利要求1~7中任一项所述的服务请求处理方法。
11.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~7中任一项所述的服务请求处理方法。
CN202211532697.8A 2022-11-29 2022-11-29 一种服务请求处理方法、装置、网关设备及存储介质 Active CN116016675B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211532697.8A CN116016675B (zh) 2022-11-29 2022-11-29 一种服务请求处理方法、装置、网关设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211532697.8A CN116016675B (zh) 2022-11-29 2022-11-29 一种服务请求处理方法、装置、网关设备及存储介质

Publications (2)

Publication Number Publication Date
CN116016675A true CN116016675A (zh) 2023-04-25
CN116016675B CN116016675B (zh) 2024-07-09

Family

ID=86030967

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211532697.8A Active CN116016675B (zh) 2022-11-29 2022-11-29 一种服务请求处理方法、装置、网关设备及存储介质

Country Status (1)

Country Link
CN (1) CN116016675B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1201227A (en) * 1980-10-24 1986-02-25 Edward B. Miller Method and apparatus for controlling distributed electrical loads
US20150264412A1 (en) * 2012-10-18 2015-09-17 Zte Corporation Fusion device, system and method for implementing internet protocol television service
CN108600005A (zh) * 2018-04-23 2018-09-28 国云科技股份有限公司 一种防御微服务雪崩效应的方法
CN109240765A (zh) * 2018-08-28 2019-01-18 中国联合网络通信集团有限公司 服务资源的熔断方法、装置、设备及计算机可读存储介质
CN110120973A (zh) * 2019-04-28 2019-08-13 华为技术有限公司 一种请求控制方法、相关设备及计算机存储介质
CN111447272A (zh) * 2020-03-26 2020-07-24 支付宝(杭州)信息技术有限公司 负载均衡方法及装置
CN111787073A (zh) * 2020-06-18 2020-10-16 多加网络科技(北京)有限公司 一种统一服务的限流熔断平台及其方法
CN112835707A (zh) * 2019-11-25 2021-05-25 高新兴科技集团股份有限公司 分布式系统负载调度方法、装置、计算机存储介质及设备
CN113014673A (zh) * 2021-04-08 2021-06-22 广州趣丸网络科技有限公司 一种服务调用优化方法和装置
CN113923200A (zh) * 2021-10-12 2022-01-11 上海中通吉网络技术有限公司 海量api网关服务的实现方法及装置
CN114157666A (zh) * 2021-10-25 2022-03-08 北京千方科技股份有限公司 一种基于智能云平台的负载均衡系统、方法、介质及装置
CN114461389A (zh) * 2022-01-13 2022-05-10 中国工商银行股份有限公司 服务器集群的负载均衡方法、装置及电子设备
CN115357779A (zh) * 2022-08-17 2022-11-18 珠海格力电器股份有限公司 一种数据处理方法、装置、系统、电子设备及存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1201227A (en) * 1980-10-24 1986-02-25 Edward B. Miller Method and apparatus for controlling distributed electrical loads
US20150264412A1 (en) * 2012-10-18 2015-09-17 Zte Corporation Fusion device, system and method for implementing internet protocol television service
CN108600005A (zh) * 2018-04-23 2018-09-28 国云科技股份有限公司 一种防御微服务雪崩效应的方法
CN109240765A (zh) * 2018-08-28 2019-01-18 中国联合网络通信集团有限公司 服务资源的熔断方法、装置、设备及计算机可读存储介质
CN110120973A (zh) * 2019-04-28 2019-08-13 华为技术有限公司 一种请求控制方法、相关设备及计算机存储介质
CN112835707A (zh) * 2019-11-25 2021-05-25 高新兴科技集团股份有限公司 分布式系统负载调度方法、装置、计算机存储介质及设备
CN111447272A (zh) * 2020-03-26 2020-07-24 支付宝(杭州)信息技术有限公司 负载均衡方法及装置
CN111787073A (zh) * 2020-06-18 2020-10-16 多加网络科技(北京)有限公司 一种统一服务的限流熔断平台及其方法
CN113014673A (zh) * 2021-04-08 2021-06-22 广州趣丸网络科技有限公司 一种服务调用优化方法和装置
CN113923200A (zh) * 2021-10-12 2022-01-11 上海中通吉网络技术有限公司 海量api网关服务的实现方法及装置
CN114157666A (zh) * 2021-10-25 2022-03-08 北京千方科技股份有限公司 一种基于智能云平台的负载均衡系统、方法、介质及装置
CN114461389A (zh) * 2022-01-13 2022-05-10 中国工商银行股份有限公司 服务器集群的负载均衡方法、装置及电子设备
CN115357779A (zh) * 2022-08-17 2022-11-18 珠海格力电器股份有限公司 一种数据处理方法、装置、系统、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RUBI RANA: ""Day-Ahead Scheduling of Electric Vehicles for Overloading Management in Active Distribution System via Web-Based Application"", 《 IEEE SYSTEMS JOURNAL》, 13 July 2018 (2018-07-13) *
张开琦: ""微服务架构负载均衡及服务容错研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 January 2022 (2022-01-15) *

Also Published As

Publication number Publication date
CN116016675B (zh) 2024-07-09

Similar Documents

Publication Publication Date Title
KR101914847B1 (ko) 블록-기반 저장장치에서의 페이지 캐시 기록 로깅
CN111294845B (zh) 节点切换方法、装置、计算机设备和存储介质
JP2002374303A (ja) ネットワーク性能予測システム及び方法
CN108874324B (zh) 一种访问请求处理方法、装置、设备及可读存储介质
CN112367384B (zh) 基于Kafka集群的动态限速方法、装置以及计算机设备
CN112558872A (zh) 数据处理方法和装置、存储介质和电子设备
CN114978945B (zh) 基于边缘节点的网络拨测方法、服务器集群及相关设备
CN116016675B (zh) 一种服务请求处理方法、装置、网关设备及存储介质
CN112130758A (zh) 一种数据读请求的处理方法、系统、电子设备及存储介质
CN108563774B (zh) Gps数据处理方法及装置
CN113312234B (zh) 一种健康检测的优化方法及终端
CN113590027B (zh) 数据存储方法、数据获取方法、系统、设备和介质
CN111324520A (zh) 业务接口的监控方法、装置、电子设备及存储介质
CN113886175A (zh) 基于Hystrix的分布式系统集群熔断方法及分布式系统
CN106776131B (zh) 一种数据备份方法及服务器
CN105634794B (zh) 网络通信功能异常的处理方法、调制解调器和移动终端
CN116931995A (zh) 系统升级方法、装置、电子设备及存储介质
CN111596864A (zh) 一种数据延时删除的方法、装置、服务器及存储介质
CN113190481B (zh) 数据传输方法、装置、电子设备及计算机可读存储介质
CN101546281A (zh) 提高嵌入式系统可靠性的方法和装置
CN116155700B (zh) 数据调取方法、装置、电子设备及存储介质
CN112486517A (zh) 应用程序的安装方法、系统、电子设备及存储介质
CN111221567A (zh) 程序版本切换方法、装置、计算机设备及存储介质
CN105376774B (zh) 网络通信功能异常的处理方法、调制解调器和移动终端
CN112182454A (zh) 一种网页优化的方法、装置及存储介质、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant