本发明涉及计算机,尤其涉及一种网关接口的超时时间的调整方法、装置和设备。
背景技术:
1、在web后端开发技术中,微服务技术趋于流行。微服务技术的核心是将传统的单体应用,根据业务拆分成一个一个小的微服务,然后通过网关对外提供统一的服务入口。当客户端请求上游服务时,请求会先到达网关,网关对请求进行鉴权、日志记录等处理后再把请求路由到上游服务实例上,上游服务实例处理完成后再由网关转发响应请求到客户端。
2、当网络环境波动时,网关在转发请求到上游服务实例时,会出现建立连接超时,导致转发请求异常。当上游服务实例的主机资源被大量占用时,网关转发请求到了上游服务实例,上游服务实例由于主机资源不足,未能及时处理请求,则会出现响应超时。当网关出现建立连接超时、响应超时的请求,可能会触发网关或客户端的重试机制,然后请求量会激增,网关实例或上游服务实例的主机资源最终会被消耗殆尽,最终导致服务不可用,造成生产事故。因此需要合理的设置网关建立连接超时和响应超时的时间。
3、然而,发明人发现现有技术至少存在如下问题:现有的方案在调整网关和上游服务之间的建立连接超时时间和响应超时时间时,主要存在以下缺点:未考虑上游服务实例、中间件的资源消耗情况,当资源充足时请求的响应时间会比较短,若仅根据网关的所有服务实例的超时时间取平均值来递增或递减计算响应超时时间则会不太准确,可能会导致响应超时过大或过小,则会造成上游服务实例被压垮或网关接口一直处于超时状态。并且,未考虑网关和上游服务器分别部署多个服务实例的情况,接口响应超时时间配置范围为服务器级,未具体化到每个服务实例,若每个服务实例的接口响应超时时间一样,则可能会造成主机资源少些的服务实例一直为接口响应超时。
技术实现思路
1、本发明实施例的目的是提供一种网关接口的超时时间的调整方法、装置和设备,其能够根据网关和上游服务器中各个服务实例的主机资源情况及响应业务请求的日志信息,动态调整网关的各个服务实例的接口超时时间。
2、为实现上述目的,本发明实施例提供了一种网关接口的超时时间的调整方法,应用于微服务系统,所述微服务系统包括网关和上游服务器,所述网关和所述上游服务器分别包括多个服务实例;所述方法包括:
3、实时获取所述网关的每一服务实例的主机资源信息、所述上游服务器的每一服务实例的主机资源信息和所述网关的每一服务实例所响应的业务请求的日志信息,并存储在预设的内存队列中;
4、每隔第一预设时长从所述内存队列中获取最近第二预设时长内的所述主机资源信息和所述日志信息;
5、通过所述主机资源信息和所述日志信息,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的建立连接超时时间和响应超时时间;
6、将所述建立连接超时时间和所述响应超时时间对应发送给所述网关的每一服务实例,用于进行所述网关的每一服务实例的接口的超时配置。
7、作为上述方案的改进,所述日志信息包括:响应所述业务请求的网关的服务实例的身份信息、所述网关的服务实例所连接的上游服务器的服务实例的身份信息、建立连接时间和响应时间。
8、作为上述方案的改进,所述通过所述主机资源信息和所述日志信息,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的建立连接超时时间和响应超时时间,包括:
9、根据所述日志信息,计算所述网关的每一服务实例的最小响应时间、平均响应时间、最小建立连接时间和平均建立连接时间;
10、根据所述网关的每一服务实例的主机资源信息,计算所述网关的每一服务实例的主机资源消耗值;
11、根据所述上游服务器的每一服务实例的主机资源信息,计算所述上游服务器的每一服务实例的主机资源消耗值;
12、根据所述网关的每一服务实例的最小建立连接时间、平均建立连接时间和所述网关的每一服务实例的主机资源消耗值,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的建立连接超时时间;
13、根据所述网关的每一服务实例的最小响应时间、平均响应时间和所述上游服务器的每一服务实例的主机资源消耗值,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的响应超时时间。
14、作为上述方案的改进,所述根据所述网关的每一服务实例的最小建立连接时间、平均建立连接时间和所述网关的每一服务实例的主机资源消耗值,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的建立连接超时时间,包括:
15、分别确定所述网关的每一服务实例的最小建立连接时间和平均建立连接时间中的最小值,作为最小建立连接时间;
16、根据所述网关的每一服务实例的主机资源消耗值,分别计算所述网关的每一服务实例的主机资源剩余值;
17、根据所述网关的每一服务实例的所述最小建立连接时间和所述主机资源剩余值,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的建立连接超时时间。
18、作为上述方案的改进,所述根据所述网关的每一服务实例的最小响应时间、平均响应时间和所述上游服务器的每一服务实例的主机资源消耗值,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的响应超时时间,包括:
19、分别确定所述网关的每一服务实例的最小响应时间和平均响应时间中的最小值,作为最小响应时间;
20、根据所述上游服务器的每一服务实例的主机资源消耗值,分别计算所述上游服务器的每一服务实例的主机资源剩余值;
21、根据所述网关的每一服务实例的所述最小响应时间、所述上游服务器的每一服务实例的主机资源剩余值和预设的时间系数,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的响应超时时间。
22、作为上述方案的改进,所述实时获取所述网关的每一服务实例的主机资源信息、所述上游服务器的每一服务实例的主机资源信息和所述网关的每一服务实例所响应的业务请求的日志信息,并存储在预设的内存队列中,包括:
23、实时从预设的消息队列中的各个主题队列上获取消息,以得到所述网关的每一服务实例的主机资源信息、所述上游服务器的每一服务实例的主机资源信息和所述网关的每一服务实例所响应的业务请求的日志信息,并存储在预设的内存队列中;
24、其中,所述网关的每一服务实例上设有第一记录插件,用于记录所述网关的每一服务实例的主机资源信息,并发送到所述预设的消息队列中与所述网关的服务实例对应的第一主题队列上;
25、所述网关的每一服务实例上设有第二记录插件,用于记录所述网关的每一服务实例的日志信息,并发送到所述预设的消息队列中与所述网关的服务实例对应的第二主题队列上;
26、所述上游服务器的每一服务实例上设有第三记录插件,用于记录所述上游服务器的每一服务实例的主机资源信息,并发送到所述预设的消息队列中与所述上游服务器的服务实例对应的第三主题队列上。
27、作为上述方案的改进,所述网关的每一服务实例上设有服务更新接口,所述服务更新接口用于获取所述建立连接超时时间和所述响应超时时间,并通过缓存单元进行缓存;当所述网关的服务实例在响应业务请求时,能够从所述缓存单元中获取对应的所述建立连接超时时间和所述响应超时时间进行超时配置。
28、作为上述方案的改进,所述方法还包括:
29、每隔第三预设时长从所述内存队列中获取最近第四预设时长内的所述日志信息;
30、根据所述日志信息,统计所述网关的每一服务实例连续出现所述建立连接时间大于对应配置的建立连接超时时间的次数,作为第一连续超时次数;以及,统计所述网关的每一服务实例连续出现所述响应时间大于对应配置的响应超时时间的次数,作为第二连续超时次数;
31、当所述第一连续超时次数大于预设的第一次数阈值时,生成对应的第一告警信息并上报;
32、当所述第一连续超时次数大于预设的第二次数阈值时,生成对应的第二告警信息并上报。
33、本发明实施例还提供了一种网关接口的超时时间的调整装置,应用于微服务系统,所述微服务系统包括网关和上游服务器,所述网关和所述上游服务器分别包括多个服务实例;所述装置包括:
34、信息储存模块,用于实时获取所述网关的每一服务实例的主机资源信息、所述上游服务器的每一服务实例的主机资源信息和所述网关的每一服务实例所响应的业务请求的日志信息,并存储在预设的内存队列中;
35、信息获取模块,用于每隔第一预设时长从所述内存队列中获取最近第二预设时长内的所述主机资源信息和所述日志信息;
36、超时时间计算模块,用于通过所述主机资源信息和所述日志信息,分别计算所述网关的每一服务实例的建立连接超时时间和响应超时时间;
37、超时时间发送模块,用于将所述建立连接超时时间和所述响应超时时间对应发送给所述网关的每一服务实例,用于进行所述网关的每一服务实例的接口的超时配置。
38、本发明实施例还提供了一种网关接口的超时时间的调整设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项所述的网关接口的超时时间的调整方法。
39、与现有技术相比,本发明公开的网关接口的超时时间的调整方法、装置和设备,通过每间隔一定时长获取当前订阅的网关的各个服务实例与上游服务器的各个服务实例的最近一段时间内响应业务请求的日志信息、主机资源信息,并计算出所述网关的各个服务实例接口与上游服务器的各个服务实例之间的合适的建立连接超时时间和响应超时时间,从而实现对网关的服务实例在每次响应业务请求时与对应不同的上游服务器的服务实例的建立连接超时时间和响应超时时间的动态调整。本发明考虑了网关、上游服务器的各个服务实例的日志信息和主机资源信息,并且改变了传统的服务器层级的超时时间配置,下放到了每个服务实例接口的配置,网关的不同服务实例、转发至上游服务器的不同服务实例所设置的超时时间各不相同,避免网关的各个服务实例采用相同的超时时间配置而导致不准确的情况,避免因超时时间过大或过小,造成上游服务实例被压垮或网关接口一直处于超时状态的情况,同时也能避免主机资源少些的服务实例一直为接口响应超时的情况发生。
1.一种网关接口的超时时间的调整方法,其特征在于,应用于微服务系统,所述微服务系统包括网关和上游服务器,所述网关和所述上游服务器分别包括多个服务实例;所述方法包括:
2.如权利要求1所述的网关接口的超时时间的调整方法,其特征在于,所述日志信息包括:响应所述业务请求的网关的服务实例的身份信息、所述网关的服务实例所连接的上游服务器的服务实例的身份信息、建立连接时间和响应时间。
3.如权利要求2所述的网关接口的超时时间的调整方法,其特征在于,所述通过所述主机资源信息和所述日志信息,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的建立连接超时时间和响应超时时间,包括:
4.如权利要求3所述的网关接口的超时时间的调整方法,其特征在于,所述根据所述网关的每一服务实例的最小建立连接时间、平均建立连接时间和所述网关的每一服务实例的主机资源消耗值,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的建立连接超时时间,包括:
5.如权利要求3所述的网关接口的超时时间的调整方法,其特征在于,所述根据所述网关的每一服务实例的最小响应时间、平均响应时间和所述上游服务器的每一服务实例的主机资源消耗值,分别计算所述网关的每一服务实例与所述上游服务器的每一服务实例之间的响应超时时间,包括:
6.如权利要求1至5任一项所述的网关接口的超时时间的调整方法,其特征在于,所述实时获取所述网关的每一服务实例的主机资源信息、所述上游服务器的每一服务实例的主机资源信息和所述网关的每一服务实例所响应的业务请求的日志信息,并存储在预设的内存队列中,包括:
7.如权利要求1至5任一项所述的网关接口的超时时间的调整方法,其特征在于,所述网关的每一服务实例上设有服务更新接口,所述服务更新接口用于获取所述建立连接超时时间和所述响应超时时间,并通过缓存单元进行缓存;当所述网关的服务实例在响应业务请求时,能够从所述缓存单元中获取对应的所述建立连接超时时间和所述响应超时时间进行超时配置。
8.如权利要求2所述的网关接口的超时时间的调整方法,其特征在于,所述方法还包括:
9.一种网关接口的超时时间的调整装置,其特征在于,应用于微服务系统,所述微服务系统包括网关和上游服务器,所述网关和所述上游服务器分别包括多个服务实例;所述装置包括:
10.一种网关接口的超时时间的调整设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8中任意一项所述的网关接口的超时时间的调整方法。
