CN115118769A - 一种业务系统参数配置、微服务执行方法及装置 - Google Patents
一种业务系统参数配置、微服务执行方法及装置 Download PDFInfo
- Publication number
- CN115118769A CN115118769A CN202210749545.7A CN202210749545A CN115118769A CN 115118769 A CN115118769 A CN 115118769A CN 202210749545 A CN202210749545 A CN 202210749545A CN 115118769 A CN115118769 A CN 115118769A
- Authority
- CN
- China
- Prior art keywords
- micro service
- micro
- service
- threshold
- calling
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000012545 processing Methods 0.000 claims abstract description 240
- 230000004044 response Effects 0.000 claims description 58
- 230000008569 process Effects 0.000 claims description 25
- 238000011144 upstream manufacturing Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 238000004519 manufacturing process Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 206010033799 Paralysis Diseases 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本申请实施例提供一种业务系统参数配置、微服务执行方法及装置,该方法包括:接收各微服务上报的各处理请求记录;其中,任一处理请求记录用于记录第一微服务对第二微服务进行调用时的调用信息;调用信息中包括第二微服务的标识和调用状况;第一微服务和第二微服务为各微服务中存在调用关系的任意两个微服务;针对任一第二微服务,根据具有第二微服务的标识的各处理请求记录,确定第二微服务的更新参数阈值;将第二微服务的更新参数阈值作为第二微服务的调用参数阈值;第二微服务的调用参数阈值用于第二微服务在被调用时确定是否执行调用请求的依据。上述方法用于提升系统请求处理效率,提高系统可用性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务系统参数配置、微服务执行方法及装置。
背景技术
微服务是一种云原生架构方法,用于将单个应用程序由许多松散耦合且可独立部署的组件或服务组成,服务之间互相协调、互相配合,实现应用程序对应的功能。在微服务架构对应的业务系统中,某些业务流程往往由多个微服务协作完成。如,商品下单流程一般需要用户微服务、交易微服务、订单微服务和商城微服务等协助实现。由于这种业务流程下的业务链路比较长,可能因网络波动、某一部署微服务的主机cpu、内存资源耗尽、DB慢查询等原因导致请求卡顿超时,且此期间微服务会不断尝试调用下一微服务,将进一步加重系统负载,超时现象可能由一两个接口蔓延到多个,甚至瘫痪整个系统。
现有技术中,为了保证业务流程的服务质量,一般通过在业务系统的配置中心设置请求处理超时时间、对下一微服务的调用次数参数,以限制微服务进行请求处理时的超时时间和对下一微服务的调用次数。这种方式虽然可以在一定程度上改善请求卡顿超时和重试调用导致的系统负载加重,但由于网络状态和系统资源等动态因素的波动,需要工作人员根据经验和系统运行状况在配置中心不断手动更新参数,工作量大,且存在参数变更不及时、不准确的问题,导致系统可用性差。
因此,现在亟需一种业务系统参数配置、微服务执行方法及装置,用于提升系统请求处理效率,提高系统可用性。
发明内容
本申请实施例提供一种业务系统参数配置、微服务执行方法及装置,用于提升系统请求处理效率,提高系统可用性。
第一方面,本申请实施例提供一种业务系统参数配置方法,该方法包括:
接收各微服务上报的各处理请求记录;其中,任一处理请求记录用于记录第一微服务对第二微服务进行调用时的调用信息;所述调用信息中包括所述第二微服务的标识和调用状况;所述第一微服务和所述第二微服务为所述各微服务中存在调用关系的任意两个微服务;
针对任一第二微服务,根据具有所述第二微服务的标识的各处理请求记录,确定所述第二微服务的更新参数阈值;将所述第二微服务的更新参数阈值作为所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
上述方法中,接收各微服务上报的各处理请求记录,任一处理请求记录用于记录第一微服务对第二微服务进行调用时的调用信息;所述调用信息中包括所述第二微服务的标识和调用状况。如此,可以根据各处理请求记录中微服务的标识确定出属于第二微服务的各处理请求记录,进一步确定第二微服务的调用信息。根据具有第二微服务的标识的各处理请求记录,确定第二微服务的更新参数阈值;将第二微服务的更新参数阈值作为第二微服务的调用参数阈值。相比于现有技术中的人工设置的调用参数阈值不准确、不及时导致的资源浪费和系统可用性差,以及参数维护成本高的问题,本申请的上述方法中,业务系统中包括超时时间阈值、调用重试次数阈值等的调用参数阈值可以自动实时更新,获得更准确的调用参数阈值,降低参数维护成本,提升系统请求处理效率,提高系统可用性。
可选的,所述调用信息中还包括第一时间、第二时间及调用次数;所述第一时间为所述第一微服务向所述第二微服务发送调用请求的时间,所述第二时间为所述第一微服务接收到所述第二微服务的调用响应的时间;
根据具有所述第二微服务的标识的各处理请求记录,确定所述第二微服务的更新参数阈值,包括:
获取具有所述第二微服务的标识的最近的N个处理请求记录;
针对所述N个处理请求记录中的每个处理请求记录,根据所述第一时间和所述第二时间确定响应时间;
根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值。
上述方法中,调用信息中还包括第一微服务向第二微服务发送调用请求的第一时间、第一微服务接收到第二微服务的调用响应的第二时间及调用次数。如此,根据第一时间和第二时间可以确定第一微服务调用第二微服务时,第二微服务的响应时间。如此,可以根据第二微服务当前的调用参数阈值、N个处理请求记录对应的N个响应时间和N个调用次数,确定该第二微服务的更新参数阈值,也就是说,可以根据生产中实时产生的生产数据计算更新参数阈值,以更新微服务中的调用参数阈值,使得获取的更新参数阈值都是基于生产中的实时生产数据计算得到的,准确性高、实时性高,有效保证微服务的可用性。
可选的,所述更新参数阈值为更新超时时间阈值,根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值,包括:
其中,所述Ti为所述第一微服务第i次调用所述第二微服务时,所述第二微服务的所述响应时间,所述Yi为所述第一微服务第i次调用所述第二微服务的失败次数,所述Zi为所述第一微服务第i次调用所述第二微服务的调用次数,所述ti所述更新超时时间阈值,所述ti-1所述第二微服务的当前超时时间阈值,所述i用于表征所述第一微服务第i次调用所述第二微服务,所述j为在所述第一微服务和所述第二微服务之间发生调用次数j小于N+1时,以人工设置的T0为超时时间阈值,所述T0′为超时时间阈值上限。
上述方法中,可以根据处理请求记录中的第二微服务的响应时间、调用次数、调用失败次数和当前超时时间阈值计算出新的超时时间阈值。确定该新的超时时间阈值是否小于等于超时时间阈值上限,若是,则以该新的超时时间阈值作为更新超时时间阈值,否则以超时时间阈值上限作为更新超时时间阈值。如此,可以保证获取更新超时时间阈值是综合调用次数和响应时间等调用状况确定的,更新超时时间阈值的计算考虑因素具有全面性,保证更新超时时间阈值的准确性。且设置超时时间阈值上限,防止更新超时时间阈值过大,超出微服务或系统可用性所允许的范围,造成微服务或系统应用的不良影响。进一步保证更新超时时间阈值的准确性。另外,若在业务系统初始化时,第二微服务被调用次数未超过N+1,则以初始设置的超时时间阈值T0作为第二微服务的当前超时时间阈值。如此,业务系统在初始化过程中,微服务应用的超时时间阈值是一个合理的值,在积累足够的生产数据后,再计算更新超时时间阈值,保证超时时间阈值的准确性。
可选的,所述更新参数阈值为更新调用重试次数阈值,根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值,包括:
其中,所述Ri为所述更新调用重试次数阈值,所述Ri-1为所述第二微服务的当前调用重试次数阈值,所述Xi为所述第一微服务第i次调用所述第二微服务的成功次数,所述Zi为所述第一微服务第i次调用所述第二微服务的调用次数,所述i用于表征所述第一微服务第i次调用所述第二微服务,所述j为在所述第一微服务和所述第二微服务之间发生调用次数j小于N+1时,以人工设置的R0为调用重试次数阈值,所述R0′为调用重试次数阈值上限。
上述方法中,可以根据处理请求记录中的第二微服务的调用次数、调用成功次数和当前调用重试次数阈值计算出新的调用重试次数阈值。确定该新的调用重试次数阈值是否小于等于调用重试次数阈值上限,若是,则以该新的调用重试次数阈值作为更新调用重试次数阈值,否则以调用重试次数阈值上限作为更新调用重试次数阈值。如此,可以保证获取更新调用重试次数阈值是综合调用次数和调用次数中的调用成功次数等调用状况确定的,更新调用重试次数阈值的计算考虑因素具有全面性,保证更新调用重试次数阈值的准确性。且设置调用重试次数阈值上限,防止更新调用重试次数阈值过大,超出微服务或系统可用性所允许的范围,造成微服务之间重试次数过大,业务流对应的各微服务之间不断地重试,耗费业务系统资源,甚至引起微服务之间雪崩性的重试,以至拖垮业务系统的运行,进一步保证更新调用重试次数阈值的准确性。另外,若在业务系统初始化时,第二微服务被调用次数未超过N+1,则以初始设置的调用重试次数阈值R0作为第二微服务的当前调用重试次数阈值。如此,业务系统在初始化过程中,微服务应用的调用重试次数阈值是一个合理的值,在积累足够的生产数据后,再计算更新调用重试次数阈值,保证调用重试次数阈值的准确性。
第二方面,本申请实施例提供一种业务系统微服务执行方法,该方法包括:
第一微服务在调用第二微服务时,在处理请求记录中记录针对所述第二微服务的调用信息;所述第二调用信息中包括第二微服务的标识和调用状况;
所述第一微服务上报所述处理请求记录;所述处理请求记录用于更新所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
上述方法中,第一微服务在调用第二微服务时,在处理请求记录中记录针对所述第二微服务的调用信息。如此,第一微服务可以更准确的记录对第二微服务的调用状况。第一微服务上报该处理请求记录。便于后续根据第二微服务的处理请求记录获取第二微服务在生产中的生产数据-调用信息,根据该调用信息可以计算得到第二微服务的更新参数阈值,以更新第二微服务中当前调用参数阈值,保证第二微服务依据调用参数阈值执行调用请求时微服务和业务系统的可用性,以及请求处理效率。
可选的,在处理请求记录中记录针对所述第二微服务的调用信息,包括:
所述第一微服务在所述处理请求记录中记录所述第一微服务向所述第二微服务发送调用请求的第一时间以及所述第一微服务接收到所述第二微服务的调用响应的第二时间;
所述第一微服务基于所述第一时间和所述第二时间,确定响应时间,所述响应时间用于确定所述第二微服务的更新超时时间阈值。
上述方法中,根据第一时间和第二时间可以确定第一微服务调用第二微服务时,第二微服务的响应时间。如此,可以根据第二微服务的响应时间确定该第二微服务的更新超时时间阈值,也就是说,可以根据生产中实时产生的生产数据计算更新超时时间阈值,以更新微服务中的调用参数阈值-当前超时时间阈值,使得获取的更新超时时间阈值都是基于生产中的实时生产数据计算得到的,准确性高、实时性高,有效保证微服务的可用性。
可选的,还包括:所述第一微服务接收临时超时时间阈值,若所述临时超时时间阈值不大于0,所述第一微服务停止对第三微服务的调用,所述第三微服务和所述第二微服务为相同或不同的微服务,所述临时超时时间阈值为第四微服务调用所述第一微服务时发送至所述第一微服务的。
上述方法中,第一微服务的上游微服务-第四微服务发送临时超时时间阈值,若临时超时时间阈值不大于0,则确定包括第四微服务的各上游微服务已经将对接收请求处理时间的上限时间消耗掉,第一微服务停止对第三微服务的调用。否则,若第一微服务仍然对第三微服务进行调用,而第一微服务的上游微服务已经返回用户请求失败的相关通知信息至客户端,造成不必要的处理资源浪费,还可能造成微服务之间调用进行请求处理的资源雪崩式浪费。如此,临时超时时间阈值可以保证在最接近客户端的微服务(第一微服务的上游微服务-第四微服务)在返回用户请求失败的相关通知信息前,可以准确确定该用户请求的业务流中各微服务是否具有处理该用户请求的能力,若是不能,第一微服务则不对第三微服务调用。防止最接近客户端的微服务已经返回用户请求失败的相关通知信息至客户端时,该用户请求的业务流中微服务仍然对该用户请求处理,业务系统中微服务做无效处理工作,也防止由于微服务被无效处理工作占用导致不能提供处理资源引起的业务系统瘫痪。
可选的,还包括:所述第一微服务接收临时超时时间阈值,若所述临时超时时间阈值大于0,所述第一微服务获取对所述接收请求的处理时间与所述临时超时时间阈值的差值,将所述差值与当前超时时间阈值中更小值作为临时超时时间阈值,在调用第三微服务时,将所述临时超时时间阈值发送至所述第三微服务,所述第三微服务和所述第二微服务为相同或不同的微服务,所述临时超时时间阈值为第四微服务调用所述第一微服务时发送至所述第一微服务的。
上述方法中,临时超时时间阈值大于0,确定包括第四微服务的各上游微服务未将对接收请求处理时间的上限时间消耗掉,第一微服务对第三微服务的调用。且第一微服务获取对接收请求的处理时间与接收第四微服务的临时超时时间阈值的差值,确定差值与第一微服务的当前超时时间阈值中更小值作为临时超时时间阈值,在调用第三微服务时,将该临时超时时间阈值发送至第三微服务。如此,保证第一微服务对接收请求处理的性能,又保证包括第一微服务的各微服务将对接收请求处理时间的剩余时间传递到下一微服务,作为临时超时时间阈值-时间限制。如此,保证上游微服务在达到超时时间阈值而生成对于客户端的用户请求失败的相关通知信息之前,获取下游微服务处理用户请求的结果。防止第一微服务用户请求失败的相关通知信息发送至客户端之后,第二微服务或第二微服务的下游微服务仍然在对用户请求进行处理。
可选的,若所述第四微服务为处理接收请求的第一个微服务,所述临时超时时间阈值是通过如下方式得到的,包括:
所述第四微服务将对所述接收请求的处理时间与当前超时时间阈值的差值作为所述临时超时时间阈值,在调用所述第一微服务时,将所述临时超时时间阈值发送至所述第一微服务。
上述方法中,第四微服务是第一微服务的上游微服务。在业务流中的各微服务之间的超时时间阈值是存在关系的,即,一般来说,上游微服务的超时时间阈值大于下游微服务的超时时间阈值,上下游微服务的超时时间阈值是类似倒金字塔情形的。如此,以保证上游微服务在达到超时时间阈值而生成对于客户端的用户请求失败的相关通知信息之前,获取下游微服务处理用户请求的结果。若第四微服务为处理接收请求的第一个微服务,第四微服务对接收请求的处理时间未超过第四微服务的当前超时时间阈值,将第四微服务的处理时间与第四微服务的当前超时时间阈值的差值作为临时超时时间阈值发送至第一微服务,若该临时超时时间阈值小于0,则第一微服务不对接收的请求进行处理且停止对第三微服务调用。如此,保证第四微服务的下游微服务-第一微服务在第四微服务生成用户请求失败的相关通知信息之前,获取处理用户请求的结果,并发送至第四微服务。防止第四微服务用户请求失败的相关通知信息发送至客户端之后,第一微服务或第一微服务的下游微服务仍然在对用户请求进行处理。
第三方面,本申请实施例提供一种业务系统参数配置装置,所述业务系统中包含多个微服务,该装置包括:
收发模块,用于接收各微服务上报的各处理请求记录;其中,任一处理请求记录用于记录第一微服务对第二微服务进行调用时的调用信息;所述调用信息中包括所述第二微服务的标识和调用状况;所述第一微服务和所述第二微服务为所述各微服务中存在调用关系的任意两个微服务;
处理模块,用于针对任一第二微服务,根据具有所述第二微服务的标识的各处理请求记录,确定所述第二微服务的更新参数阈值;将所述第二微服务的更新参数阈值作为所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
第四方面,本申请实施例提供一种业务系统微服务执行装置,该装置包括:
处理模块,用于在调用第二微服务时,在处理请求记录中记录针对所述第二微服务的调用信息;所述第二调用信息中包括第二微服务的标识和调用状况;
收发模块,用于所述第一微服务上报所述处理请求记录;所述处理请求记录用于更新所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
第五方面,本申请实施例还提供一种计算设备,包括:存储器,用于存储程序;处理器,用于调用所述存储器中存储的程序,按照获得的程序执行如第一方面、第二方面的各种可能的设计中所述的方法。
第六方面,本申请实施例还提供一种计算机可读非易失性存储介质,包括计算机可读程序,当计算机读取并执行所述计算机可读程序时,使得计算机执行如第一方面、第二方面的各种可能的设计中所述的方法。
本申请的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种业务系统参数配置的架构示意图;
图2为本申请实施例提供的一种业务系统参数配置的架构示意图;
图3为本申请实施例提供的一种业务系统的架构示意图;
图4为本申请实施例提供的一种微服务的时间记录示意图;
图5为本申请实施例提供的一种微服务的系统架构示意图;
图6为本申请实施例提供的一种业务系统参数配置方法的流程示意图;
图7为本申请实施例提供的一种业务系统微服务参数配置和执行方法的流程示意图;
图8为本申请实施例提供的一种业务系统微服务参数配置和执行方法的流程示意图;
图9为本申请实施例提供的一种业务系统参数配置装置示意图;
图10为本申请实施例提供的一种业务系统微服务执行装置示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种业务系统参数配置的系统架构,该系统架构中包括第四微服务101、第一微服务102、第二微服务103、第三微服务104、调度中心105和计算中心106。需要说明的是,业务系统参数配置系统中的微服务不仅仅只限于第四微服务101、第一微服务102、第二微服务103、第三微服务104这四个微服务,或者也可以少于四个微服务,这里只是为了更清楚的阐述本申请的技术方案,对业务系统参数配置系统中的微服务设置的数量和上下游之间的关系具体不做限制。为了便于理解,这里结合业务处理过程简单描述业务系统中参数配置系统的上述组成部分的工作方式,假设业务系统中参数配置系统设置在如图3所示的业务系统中的服务端302上,这里图3所示的业务系统的系统架构只是一种示例,客户端301和服务端302之间还可以有队列服务端、验证服务端等装置,这里对本申请的业务系统参数配置系统的设置具体不做限制。
在业务系统初始化时,开发人员根据经验或专业分别为第四微服务101、第一微服务102、第二微服务103、第三微服务104设置初始的超时时间阈值和调用重试次数阈值等调用参数阈值。需要说明的是,可以根据业务需求将第四微服务101、第一微服务102、第二微服务103、第三微服务104的初始的超时时间阈值和调用重试次数阈值设置为相同的或不同的,这里对第四微服务101、第一微服务102、第二微服务103、第三微服务104的初始的超时时间阈值和调用重试次数阈值的设置具体不做限制。
基于图4中的微服务的时间记录示意图,假设第一请求对应的业务流为第四微服务101、第一微服务102、第二微服务103。第二请求对应的业务流为第四微服务101、第一微服务102、第三微服务104。需要说明的是,这里的第一请求和第二请求分别为其对应业务流下的接收请求,为了便于描述不同的业务流,将业务流中各微服务的接收请求描述为第一请求和第二请求。
第四微服务101接收第一请求,并记录接收第一请求的接收时间S0,在对该第一请求处理完成后,基于该第一请求向第一微服务102发送调用请求,并记录发送调用请求的发送时间S1。另外,第四微服务101还获取当前超时时间阈值-(S1-S0)=差值,将该差值作为临时超时时间阈值也发送至第一微服务102。
第一微服务102基于该调用请求被该第四微服务101调用且接收第一请求,并记录接收第一请求的接收时间S2。第一微服务102确定接收的该临时超时时间阈值是否大于0,若该临时超时时间阈值小于等于0,第一微服务102放弃对该第一请求的处理,以及停止对第二微服务103调用。若该临时超时时间阈值大于0,第一微服务102对第一请求进行处理,在对该第一请求处理完成后,基于该第一请求向第二微服务103发送调用请求,并记录发送调用请求的发送时间S3(第一时间)。第一微服务102还将获取对第一请求的处理时间与第四微服务发送的临时超时时间阈值的差值(第四微服务发送的临时超时时间阈值-(S3-S2)),将该差值和第一微服务102自身的当前超时时间阈值中更小的值作为临时超时时间阈值,将该临时超时时间阈值也发送至第二微服务103。
第二微服务103基于该调用请求被该第一微服务102调用且接收第一请求,并记录接收第一请求的接收时间S4,第二微服务103确定接收的该临时超时时间阈值是否大于0,若该临时超时时间阈值小于等于0,第二微服务103放弃对该第一请求的处理(若是第二微服务还存在针对该第一请求处理的下游微服务,则停止对下一微服务调用)。若该临时超时时间阈值大于0,第二微服务103对第一请求进行处理,在对该第一请求处理完成,获取第一处理结果,并记录获取第一处理结果时间S5。第二微服务103确定针对该第一请求的处理没有下一微服务,则将该第一处理结果发送。第二微服务103将第一处理结果向第一微服务102发送的时间为S6,第一微服务102接收该第一处理结果时间为S7,第一微服务102将第一处理结果向第四微服务101发送的时间为S8,第四微服务101接收该第一处理结果时间为S9(第二时间),第四微服务101将第一处理结果向客户端301发送的时间为S10。
该过程中,第四微服务101将S0、S10、第四微服务101的标识作为处理请求记录上传至调度中心105,由调度中心105将该处理请求记录上传至计算中心106。且将S1、S9、第一微服务102的标识作为处理请求记录上传至调度中心105,由调度中心105将该处理请求记录上传至计算中心106。上述微服务之间的调用为一种情况,还有另一种情况,如,第四微服务101基于该第一请求向第一微服务102发送调用请求多次才对第一微服务102调用成功,也就是说,微服务之间的调用次数可以和处理的请求的数量不同。则该处理请求记录中还可以包含第四微服务101基于该第一请求向第一微服务102发送调用次数,以及调用成功和调用失败的相关信息。
第一微服务102将S3、S7、第二微服务103的标识作为处理请求记录上传至调度中心105,由调度中心105将该处理请求记录上传至计算中心106。上述微服务之间的调用为一种情况,还有另一种情况,如,第一微服务102基于该第一请求向第二微服务103发送调用请求多次才对第二微服务103调用成功。则该处理请求记录中还可以包含第一微服务102基于该第一请求向第二微服务103发送调用次数,以及调用成功和调用失败的相关信息。
需要说明的是,上述各微服务可以每获取一个处理请求记录,就将该处理请求记录上传至调度中心105,也可以获取一定数量的处理请求记录后,将该一定数量的处理请求记录上传至调度中心105。这里对处理请求记录上传的数量和时机具体不做限制。
则计算中心106若确定微服务的从投入生产至今的调用次数大于等于预设值(预设值用于确定调用次数大于该值时,保证有足够的数据计算更新参数阈值),根据各微服务上传的各处理请求记录中的该微服务的微服务标识,计算该微服务的更新参数阈值,并将该微服务的更新参数阈值下发至调度中心105,调度中心105将该微服务的更新参数阈值设置在该微服务中,作为该微服务的当前调用参数阈值。计算中心106若确定微服务的调用次数小于预设值,则以人工设置或系统默认值的调用参数阈值作为该微服务处理第一请求的依据-当前调用参数阈值。
第二请求对应的业务流为第四微服务101、第一微服务102、第三微服务104,第三微服务104和第二微服务103可以是相同的或不同的,还可以是同一个,这里具体不做限制。若根据上述示例中的,计算中心106若确定微服务的调用次数大于等于预设值,根据计算的更新参数阈值作为该微服务的当前调用参数阈值。第四微服务101、第一微服务102分别以接收到的更新参数阈值作为第四微服务101、第一微服务102的当前调用参数阈值。如此,针对每个微服务,获取该微服务的处理请求记录,对处理请求记录分析,确定该微服务的更新参数阈值,以自动更新该微服务中的调用参数阈值,该微服务根据参数模块中的调用参数阈值-当前调用参数阈值对请求处理。如此,业务系统中的参数可以自动更新,且是根据请求做实时更新,将业务系统中微服务的参数自动化实时更新,提升系统请求处理效率,提高系统可用性。
基于上述图1中的系统框架,本申请实施例提供的一种业务系统参数配置的系统架构,如图2所示,该系统架构中包括第四微服务201、第一微服务202、第二微服务203、第三微服务204、调度中心205、计算中心206和配置中心207。其中,配置中心207在计算中心206计算出微服务的更新参数阈值后,根据该更新参数阈值更新记录的该微服务对应的调用参数阈值。
基于上述图1、图2中的系统框架,本申请实施例提供的一种业务系统参数配置的系统架构,本申请实施例提供的一种微服务的系统架构,如图5所示,每个微服务可以设置其对应的参数模块,参数模块可以作为微服务收发请求的入口和出口,同时参数模块入口记录微服务接收请求的时间,参数模块出口记录发送请求的时间和接收下一微服务返回的调用响应的时间,以准确获取下一微服务的响应时间。如此,在微服务上安装参数模块,可以由参数模块获取处理请求记录,对应获取实时参数,加快业务系统参数配置系统发布的效率,降低业务系统参数配置系统开发成本。
基于此,本申请实施例提供了一种业务系统参数配置方法的流程,所述业务系统中包含多个微服务,如图6所示,包括:
步骤601、接收各微服务上报的各处理请求记录;其中,任一处理请求记录用于记录第一微服务对第二微服务进行调用时的调用信息;所述调用信息中包括所述第二微服务的标识和调用状况;所述第一微服务和所述第二微服务为所述各微服务中存在调用关系的任意两个微服务;
此处,处理请求记录可以为微服务根据对接收的请求处理的情况所做的记录。如,可以包括接收请求的时间、发送请求的时间、处理请求的时间、请求类型、请求中报文内容等等相关信息。处理请求记录中记录调用状况可以为调用次数、调用成功率、调用失败率、调用成功次数、调用失败次数、调用耗费时间、调用方式等等。这里对处理请求记录的具体信息不做限制,对处理请求记录中的调用状况中包含的信息不做限制。
步骤602、针对任一第二微服务,根据具有所述第二微服务的标识的各处理请求记录,确定所述第二微服务的更新参数阈值;将所述第二微服务的更新参数阈值作为所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
此处,更新参数阈值和调用参数阈值可以是对应的。如,更新参数阈值为更新超时时间阈值,调用参数阈值为微服务的当前超时时间阈值、更新参数阈值为更新调用重试次数阈值,调用参数阈值为微服务的当前调用重试次数阈值、更新参数阈值为更新连接时间(连接时间,可以理解为上游微服务和下游微服务的建立连接耗费时间)阈值,调用参数阈值为微服务的当前连接时间阈值等。这里对更新参数阈值和调用参数阈值具体不做限制。
第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。如,若调用参数阈值是当前连接时间阈值,则微服务在当前连接时间阈值内若没有和下游微服务建立连接,则停止建立连接行为。
上述方法中,接收各微服务上报的各处理请求记录,任一处理请求记录用于记录第一微服务对第二微服务进行调用时的调用信息;所述调用信息中包括所述第二微服务的标识和调用状况。如此,可以根据各处理请求记录中微服务的标识确定出属于第二微服务的各处理请求记录,进一步确定第二微服务的调用信息。根据具有第二微服务的标识的各处理请求记录,确定第二微服务的更新参数阈值;将第二微服务的更新参数阈值作为第二微服务的调用参数阈值。相比于现有技术中的人工设置的调用参数阈值不准确、不及时导致的资源浪费和系统可用性差,以及参数维护成本高的问题,本申请的上述方法中,业务系统中包括超时时间阈值、调用重试次数阈值等的调用参数阈值可以自动实时更新,获得更准确的调用参数阈值,降低参数维护成本,提升系统请求处理效率,提高系统可用性。
在上述流程的步骤602中,所述调用信息中还包括第一时间、第二时间及调用次数;所述第一时间为所述第一微服务向所述第二微服务发送调用请求的时间,所述第二时间为所述第一微服务接收到所述第二微服务的调用响应的时间;
根据具有所述第二微服务的标识的各处理请求记录,确定所述第二微服务的更新参数阈值,包括:
获取具有所述第二微服务的标识的最近的N个处理请求记录;
针对所述N个处理请求记录中的每个处理请求记录,根据所述第一时间和所述第二时间确定响应时间;
根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值。也就是说,计算中心可以在各处理请求记录中确定具有第二微服务的标识的最近的N个处理请求记录,根据第一微服务向该第二微服务发送调用请求的时间,和接收到该第二微服务的调用响应的时间得到该第一微服务调用第二微服务的响应时间,进一步根据N个处理请求记录中的N个调用次数确定第二微服务的更新参数阈值,使得更新参数阈值为考虑第二微服务的响应时间和调用状况获得的,提高更新参数阈值的准确性。
在上述步骤602的细化描述中,若所述更新参数阈值为更新超时时间阈值,根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值,包括:
其中,所述Ti为所述第一微服务第i次调用所述第二微服务时,所述第二微服务的所述响应时间,所述Yi为所述第一微服务第i次调用所述第二微服务的失败次数,所述Zi为所述第一微服务第i次调用所述第二微服务的调用次数,所述ti所述更新超时时间阈值,所述ti-1所述第二微服务的当前超时时间阈值,所述i用于表征所述第一微服务第i次调用所述第二微服务,所述j为在所述第一微服务和所述第二微服务之间发生调用次数j小于N+1时,以人工设置的T0为超时时间阈值,所述T0′为超时时间阈值上限。
在一种示例中,若N+1=6,T0′=5;则得到
即,第一微服务和第二微服务之间发生调用次数小于6时,以人工设置的T0为超时时间阈值,第一微服务和第二微服务之间发生调用次数大于等于6时,确定T1和T0′=5s那个更小,那个更小则以那个作为更新参数阈值,目的是在获取更准确的更新参数阈值的前提下,不可以让更新参数阈值超出超时时间阈值上限。如此,保证业务系统可用性。
在上述步骤602的细化描述中,所述更新参数阈值为更新调用重试次数阈值,根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值,包括:
其中,所述Ri为所述更新调用重试次数阈值,所述Ri-1为所述第二微服务的当前调用重试次数阈值,所述Xi为所述第一微服务第i次调用所述第二微服务的成功次数,所述Zi为所述第一微服务第i次调用所述第二微服务的调用次数,所述i用于表征所述第一微服务第i次调用所述第二微服务,所述j为在所述第一微服务和所述第二微服务之间发生调用次数j小于N+1时,以人工设置的R0为调用重试次数阈值,所述R0′为调用重试次数阈值上限。
在一种示例中,若N+1=6,R0′=3;则得到
即,第一微服务和第二微服务之间发生调用次数小于6时,以人工设置的R0为调用重试次数阈值,第一微服务和第二微服务之间发生调用次数大于等于6时,确定R1和R0′=5s那个更小,那个更小则以那个作为更新参数阈值,目的是在获取更准确的更新参数阈值的前提下,不可以让更新参数阈值超出调用重试次数上限。如此,保证业务系统可用性,防止业务系统调用重试次数阈值过高导致的微服务之间不断重试,造成业务系统运行迟缓甚至瘫痪。
在业务系统微服务侧的微服务执行方法中,包括:第一微服务在调用第二微服务时,在处理请求记录中记录针对所述第二微服务的调用信息;所述第二调用信息中包括第二微服务的标识和调用状况;所述第一微服务上报所述处理请求记录;所述处理请求记录用于更新所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。也就是说,第一微服务在调用第二微服务时,会根据对第二微服务的调用状况和第二微服务的标识生成处理请求记录,第一微服务将该处理请求记录上报至计算中心后,可以由计算中心根据该处理请求记录获取第二微服务的更新参数阈值以更新调用参数阈值,实现参数阈值的实时更新。
在上述微服务执行方法中,在处理请求记录中记录针对所述第二微服务的调用信息,包括:所述第一微服务在所述处理请求记录中记录所述第一微服务向所述第二微服务发送调用请求的第一时间以及所述第一微服务接收到所述第二微服务的调用响应的第二时间;所述第一微服务基于所述第一时间和所述第二时间,确定响应时间,所述响应时间用于确定所述第二微服务的更新超时时间阈值。也就是说,在上述步骤601中,接收各微服务上报的各处理请求记录,其中的各微服务上报的各处理请求记录中可以包括第一微服务上报的处理请求记录。第一微服务在处理请求记录中记录第一微服务向第二微服务发送调用请求的第一时间以及第一微服务接收到第二微服务的调用响应的第二时间,和/或第一微服务基于该第一时间和该第二时间确定的响应时间。第一微服务将包含第一时间、第二时间和/或该响应时间上传至计算中心,则计算中心根据第一时间和第二时间确定第二微服务的响应时间,计算第二微服务更新参数阈值,或直接基于处理请求记录中的响应时间计算第二微服务更新参数阈值。这里响应时间可以在计算中心确定,以保证第一微服务处理接收请求的性能良好。
基于上述各方法流程,本申请实施例还提供了一种业务系统微服务参数配置和执行的方法流程,还包括:所述第一微服务接收临时超时时间阈值,若所述临时超时时间阈值不大于0,所述第一微服务停止对第三微服务的调用,所述第三微服务和所述第二微服务为相同或不同的微服务,所述临时超时时间阈值为第四微服务调用所述第一微服务时发送至所述第一微服务的。也就是说,第一微服务的上游微服务-第四微服务将其临时超时时间阈值发送至第一微服务后,若该临时超时时间阈值不大于0,则代表对接收请求的处理时间在第四微服务已经应用耗尽,继续处理可能会造成用户端长时间等待,还会增加业务系统处理压力,则可以在第一微服务处停止对第三微服务(第三微服务和第二微服务为相同或不同的微服务)的调用,还可以停止第一微服务对接收请求的处理。
基于上述各方法流程,本申请实施例还提供了一种业务系统微服务参数配置和执行的方法流程,还包括:所述第一微服务接收临时超时时间阈值,若所述临时超时时间阈值大于0,所述第一微服务获取对所述接收请求的处理时间与所述临时超时时间阈值的差值,将所述差值与当前超时时间阈值中更小值作为临时超时时间阈值,在调用第三微服务时,将所述临时超时时间阈值发送至所述第三微服务,所述第三微服务和所述第二微服务为相同或不同的微服务,所述临时超时时间阈值为第四微服务调用所述第一微服务时发送至所述第一微服务的。也就是说,第一微服务的上游微服务-第四微服务将其临时超时时间阈值发送至第一微服务后,若该临时超时时间阈值大于0,则代表接收请求的业务流下对接收请求的处理时间在第四微服务没有应用耗尽,还可以继续处理,此时并不会造成用户端的长时间等待,且处理接收请求的压力仍然在业务系统可承受范围内,则第一微服务可以对该接收请求进行处理,处理完成后,第一微服务对第三微服务(第三微服务和第二微服务为相同或不同的微服务)进行调用,且在将接收请求发送至第二微服务时,确定该接收请求处理完成,获取对该接收请求的处理时间与接收上游微服务的临时超时时间阈值的差值,将该差值与当前超时时间阈值中更小值作为临时超时时间阈值(获取的该差值可以是业务流下对该接收请求处理对应的剩余时长,而第一微服务的当前超时时间阈值是该第一微服务为了保证针对下游各微服务的调用处于较好的性能下而设置的上限。如此,既可以保证接收请求的业务流的顺利处理(有效防止上游微服务返回通知用户请求失败的相关信息的同时,下游为服务还在对接收请求进行处理的情况),还可以保证第一微服务运行处于较为优良状态(如,若第一微服务的当前超时时间阈值比该差值更小,则以该第一微服务的当前超时时间阈值作为临时超时时间阈值,对第一微服务的下游微服务工作时间做更紧的限制,保证第一微服务的运行状态较好)。),在调用第三微服务时,将第一微服务的临时超时时间阈值发送至第三微服务。如此,相当于将处理该接收请求所剩余的时长发送至下游微服务,令下游微服务以该临时超时时间阈值作为处理接收请求的时间限制(第一微服务的业务流不存在下游微服务时)和/或处理接收请求以及调用下一微服务的时间限制(第一微服务的业务流存在下游微服务时)。
基于上述各方法流程,本申请实施例还提供了一种业务系统微服务参数配置和执行的方法流程,若所述第四微服务为处理接收请求的第一个微服务,所述临时超时时间阈值是通过如下方式得到的,包括:所述第四微服务将对所述接收请求的处理时间与当前超时时间阈值的差值作为所述临时超时时间阈值,在调用所述第一微服务时,将所述临时超时时间阈值发送至所述第一微服务。也就是说,第一微服务的上游微服务-第四微服务的对接收请求的处理时间未超过该第四微服务的当前超时时间阈值时,第四微服务获取对接收请求的处理时间与当前超时时间阈值的差值作为临时超时时间阈值发送至第一微服务(理解性的,上游微服务的超时时间阈值至下游微服务的超时时间阈值为倒金字塔情况的,若上游微服务的超时时间阈值到达后,会生成用户请求成功或失败的相关通知信息,则若下游微服务若响应时间超过该超时时间阈值的处理工作无效。为了防止下游微服务做无效工作,则可以将上游微服务还剩余的时长(临时超时时间阈值)发送至下游微服务,将下游微服务的响应时间限制。)如此,既可以保证第一微服务的对接收请求的处理时间不超过第四微服务的临时超时时间阈值,保证第一微服务工作的有效性。
基于上述方法流程和系统架构,本申请实施例提供了一种业务系统微服务参数配置和执行的方法流程,在一种示例中,基金购买信息的查询请求对应的业务流包括微服务A->微服务B->微服务C(为了结合上述流程和系统框架理解,这里的微服务A可以是第四微服务,微服务B可以是第一微服务,微服务C可以是第二微服务或第三微服务),如图7所示,包括:
步骤701、微服务A接收用户1的基金购买信息的查询请求,记录接收该查询请求时间,对该用户1的账户进行验证。
步骤702、验证成功以后,向微服务B发送调用请求,记录发送该调用请求时间(发送调用请求时,可以发送该查询请求)。
步骤703、微服务A根据接收该查询请求时间和发送该调用请求时间确定对该查询请求的处理时间,将对该查询请求的处理时间与当前超时时间阈值的差值作为临时超时时间阈值,在调用微服务B时,将该临时超时时间阈值发送至微服务B。
步骤704、微服务B接收微服务A发送的调用请求、查询请求和临时超时时间阈值,微服务B判断临时超时时间阈值是否不大于0,若是,执行步骤705,若否执行步骤706。
步骤705、微服务B不对微服务C进行调用。
步骤706、微服务B对查询请求进行处理,处理完成后,向微服务C发送调用请求,记录发送该调用请求时间。微服务B根据接收该查询请求时间和发送该调用请求时间确定对该查询请求的处理时间,获取对该查询请求的处理时间与临时超时时间阈值的差值,将该差值和当前超时时间阈值中的最小值作为临时超时时间阈值,在调用微服务C时,将该临时超时时间阈值发送至微服务C。
步骤707、微服务C接收微服务B发送的调用请求、查询请求,以及该临时超时时间阈值,微服务C判断临时超时时间阈值是否不大于0,若是,执行步骤705,若否执行步骤706。
步骤708、微服务C不对查询请求进行处理。
步骤709、微服务C对查询请求进行处理,处理完成后,获取处理结果,将该处理结果发送至微服务B,并记录该处理结果发送时间。
步骤710、微服务B接收该处理结果,并记录接收该处理结果的接收时间(对应微服务B发送调用请求至微服务C的调用响应)。微服务B将该处理结果发送至微服务A,并记录发送该处理结果的发送时间。
步骤711、微服务A接收该处理结果,并记录接收该处理结果的接收时间(对应微服务A发送调用请求至微服务B的调用响应)。微服务A将该处理结果发送至客户端,并记录发送该处理结果的发送时间。
步骤712、微服务A根据微服务A的标识、接收查询请求的接收时间和发送调用请求的时间生成处理请求记录;微服务A根据微服务A调用微服务B的调用信息(包括微服务B的标识、发送调用请求的时间和接收调用响应的时间)生成处理请求记录,并上传至调度中心,调度中心将该消息上传至计算中心。
步骤713、微服务B根据微服务B调用微服务C的调用信息(包括微服务C的标识、发送调用请求的时间和接收调用响应的时间)生成处理请求记录,并上传至调度中心,调度中心将该消息上传至计算中心。
步骤714、微服务C根据微服务C的标识、接收查询请求的接收时间和发送处理结果(调用响应)的时间生成处理请求记录,并上传至调度中心,调度中心将该消息上传至计算中心。
步骤715、计算中心根据获取的处理请求记录计算更新超时时间阈值。
步骤716、计算中心将获得的更新超时时间阈值下发至调度中心,调度中心根据该更新超时时间阈值更新对应微服务中的当前超时时间阈值。还可以计算中心将获得的更新超时时间阈值发送至配置中心,配置中心下发至调度中心,调度中心根据该更新超时时间阈值更新对应微服务中的当前超时时间阈值。
需要说明的是,上述方法流程步骤并不唯一,如,步骤712、步骤713、步骤714三个步骤可以以任意顺序执行。
基于上述方法流程和系统架构,本申请实施例提供了一种业务系统微服务参数配置和执行的方法流程,在一种示例中,基金购买信息的查询请求对应的业务流包括微服务A->微服务B->微服务C(为了结合上述流程和系统框架理解,这里的微服务A可以是第四微服务,微服务B可以是第一微服务,微服务C可以是第二微服务或第三微服务),如图8所示,包括:
步骤801、微服务A接收用户1的基金购买信息的查询请求,对该用户1的账户进行验证。
步骤802、验证成功以后,微服务A在当前调用重试次数阈值下调用微服务B。
步骤803、若超过当前调用重试次数阈值,调用失败,微服务A采集这次调用过程中微服务A的调用信息,根据该调用信息生成处理请求记录并上传至调度中心,调度中心上传至计算模块。未超过当前调用重试次数阈值,调用成功,微服务A采集这次查询请求微服务A的调用信息,根据该调用信息生成处理请求记录并上传至调度中心,调度中心上传至计算模块。
步骤804、计算中心根据获取的处理请求记录计算更新调用重试次数阈值。
步骤805、计算中心将获得的更新调用重试次数阈值下发至调度中心,调度中心根据该更新调用重试次数阈值更新对应微服务中的当前调用重试次数阈值。还可以计算中心将获得的更新调用重试次数阈值发送至配置中心,配置中心下发至调度中心,调度中心根据该更新调用重试次数阈值更新对应微服务中的当前调用重试次数阈值。
需要说明的是,上述方法流程中微服务B在调用微服务C时,同样在超过当前调用重试次数阈值且调用失败时采集微服务B的调用信息,根据该调用信息生成处理请求记录并上传至调度中心,调度中心上传至计算模块。未超过当前调用重试次数阈值且调用成功,采集微服务B的调用信息,根据该调用信息生成处理请求记录并上传至调度中心,调度中心上传至计算模块。这里对微服务A和微服务B上传处理请求记录的顺序不做限制。另外,这里的调用信息可以与图7的方法流程中的调用信息分开或一起上传,这里具体不做限制。
基于同样的构思,本发明实施例提供一种业务系统参数配置装置,所述业务系统中包含多个微服务,图9为本申请实施例提供的一种业务系统参数配置装置示意图,如图9示,包括:
收发模块901,用于接收各微服务上报的各处理请求记录;其中,任一处理请求记录用于记录第一微服务对第二微服务进行调用时的调用信息;所述调用信息中包括所述第二微服务的标识和调用状况;所述第一微服务和所述第二微服务为所述各微服务中存在调用关系的任意两个微服务;
处理模块902,用于针对任一第二微服务,根据具有所述第二微服务的标识的各处理请求记录,确定所述第二微服务的更新参数阈值;将所述第二微服务的更新参数阈值作为所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
可选的,所述调用信息中还包括第一时间、第二时间及调用次数;所述第一时间为所述第一微服务向所述第二微服务发送调用请求的时间,所述第二时间为所述第一微服务接收到所述第二微服务的调用响应的时间;
所述处理模块902具体用于,获取具有所述第二微服务的标识的最近的N个处理请求记录;针对所述N个处理请求记录中的每个处理请求记录,根据所述第一时间和所述第二时间确定响应时间;根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值。
可选的,所述更新参数阈值为更新超时时间阈值,所述处理模块902具体用于,包括:
其中,所述Ti为所述第一微服务第i次调用所述第二微服务时,所述第二微服务的所述响应时间,所述Yi为所述第一微服务第i次调用所述第二微服务的失败次数,所述Zi为所述第一微服务第i次调用所述第二微服务的调用次数,所述ti所述更新超时时间阈值,所述ti-1所述第二微服务的当前超时时间阈值,所述i用于表征所述第一微服务第i次调用所述第二微服务,所述j为在所述第一微服务和所述第二微服务之间发生调用次数j小于N+1时,以人工设置的T0为超时时间阈值,所述T0′为超时时间阈值上限。
可选的,所述更新参数阈值为更新调用重试次数阈值,所述处理模块902具体用于,包括:
其中,所述Ri为所述更新调用重试次数阈值,所述Ri-1为所述第二微服务的当前调用重试次数阈值,所述Xi为所述第一微服务第i次调用所述第二微服务的成功次数,所述Zi为所述第一微服务第i次调用所述第二微服务的调用次数,所述i用于表征所述第一微服务第i次调用所述第二微服务,所述j为在所述第一微服务和所述第二微服务之间发生调用次数j小于N+1时,以人工设置的R0为调用重试次数阈值,所述R0′为调用重试次数阈值上限。
基于同样的构思,本发明实施例提供一种业务系统微服务执行配置装置,图10为本申请实施例提供的一种业务系统微服务执行配置装置示意图,如图10示,包括:
处理模块1001,用于在调用第二微服务时,在处理请求记录中记录针对所述第二微服务的调用信息;所述第二调用信息中包括第二微服务的标识和调用状况;
收发模块1002,用于所述第一微服务上报所述处理请求记录;所述处理请求记录用于更新所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
可选的,所述处理模块1001具体用于,所述第一微服务在所述处理请求记录中记录所述第一微服务向所述第二微服务发送调用请求的第一时间以及所述第一微服务接收到所述第二微服务的调用响应的第二时间;所述第一微服务基于所述第一时间和所述第二时间,所述响应时间用于确定所述第二微服务的更新超时时间阈值。
可选的,所述处理模块1001还用于,所述第一微服务接收临时超时时间阈值,若所述临时超时时间阈值不大于0,所述第一微服务停止对第三微服务的调用,所述第三微服务和所述第二微服务为相同或不同的微服务,所述临时超时时间阈值为第四微服务调用所述第一微服务时发送至所述第一微服务的。
可选的,所述处理模块1001还用于,所述第一微服务接收临时超时时间阈值,若所述临时超时时间阈值大于0,所述第一微服务获取对所述接收请求的处理时间与所述临时超时时间阈值的差值,将所述差值与当前超时时间阈值中更小值作为临时超时时间阈值,在调用第三微服务时,将所述临时超时时间阈值发送至所述第三微服务,所述第三微服务和所述第二微服务为相同或不同的微服务,所述临时超时时间阈值为第四微服务调用所述第一微服务时发送至所述第一微服务的。
可选的,所述处理模块1001还用于,所述第四微服务将对所述接收请求的处理时间与当前超时时间阈值的差值作为所述临时超时时间阈值,在调用所述第一微服务时,将所述临时超时时间阈值发送至所述第一微服务。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (13)
1.一种业务系统参数配置方法,其特征在于,所述业务系统中包含多个微服务,所述方法包括:
接收各微服务上报的各处理请求记录;其中,任一处理请求记录用于记录第一微服务对第二微服务进行调用时的调用信息;所述调用信息中包括所述第二微服务的标识和调用状况;所述第一微服务和所述第二微服务为所述各微服务中存在调用关系的任意两个微服务;
针对任一第二微服务,根据具有所述第二微服务的标识的各处理请求记录,确定所述第二微服务的更新参数阈值;将所述第二微服务的更新参数阈值作为所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
2.如权利要求1所述的方法,其特征在于,所述调用信息中还包括第一时间、第二时间及调用次数;所述第一时间为所述第一微服务向所述第二微服务发送调用请求的时间,所述第二时间为所述第一微服务接收到所述第二微服务的调用响应的时间;
根据具有所述第二微服务的标识的各处理请求记录,确定所述第二微服务的更新参数阈值,包括:
获取具有所述第二微服务的标识的最近的N个处理请求记录;
针对所述N个处理请求记录中的每个处理请求记录,根据所述第一时间和所述第二时间确定响应时间;
根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值。
3.如权利要求2所述的方法,其特征在于,所述更新参数阈值为更新超时时间阈值,根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值,包括:
其中,所述Ti为所述第一微服务第i次调用所述第二微服务时,所述第二微服务的所述响应时间,所述Yi为所述第一微服务第i次调用所述第二微服务的失败次数,所述Zi为所述第一微服务第i次调用所述第二微服务的调用次数,所述ti所述更新超时时间阈值,所述ti-1所述第二微服务的当前超时时间阈值,所述i用于表征所述第一微服务第i次调用所述第二微服务,所述j为在所述第一微服务和所述第二微服务之间发生调用次数j小于N+1时,以人工设置的T0为超时时间阈值,所述T0′为超时时间阈值上限。
4.如权利要求2所述的方法,其特征在于,所述更新参数阈值为更新调用重试次数阈值,根据所述第二微服务当前的调用参数阈值、所述N个处理请求记录对应的N个响应时间和N个调用次数,确定所述第二微服务的更新参数阈值,包括:
其中,所述Ri为所述更新调用重试次数阈值,所述Ri-1为所述第二微服务的当前调用重试次数阈值,所述Xi为所述第一微服务第i次调用所述第二微服务的成功次数,所述Zi为所述第一微服务第i次调用所述第二微服务的调用次数,所述i用于表征所述第一微服务第i次调用所述第二微服务,所述j为在所述第一微服务和所述第二微服务之间发生调用次数j小于N+1时,以人工设置的R0为调用重试次数阈值,所述R0′为调用重试次数阈值上限。
5.一种业务系统微服务执行方法,其特征在于,所述方法包括:
第一微服务在调用第二微服务时,在处理请求记录中记录针对所述第二微服务的调用信息;所述第二调用信息中包括第二微服务的标识和调用状况;
所述第一微服务上报所述处理请求记录;所述处理请求记录用于更新所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
6.如权利要求5所述的方法,其特征在于,在处理请求记录中记录针对所述第二微服务的调用信息,包括:
所述第一微服务在所述处理请求记录中记录所述第一微服务向所述第二微服务发送调用请求的第一时间以及所述第一微服务接收到所述第二微服务的调用响应的第二时间;
所述第一微服务基于所述第一时间和所述第二时间,确定响应时间,所述响应时间用于确定所述第二微服务的更新超时时间阈值。
7.如权利要求5所述的方法,其特征在于,还包括:
所述第一微服务接收临时超时时间阈值,若所述临时超时时间阈值不大于0,所述第一微服务停止对第三微服务的调用,所述第三微服务和所述第二微服务为相同或不同的微服务,所述临时超时时间阈值为第四微服务调用所述第一微服务时发送至所述第一微服务的。
8.如权利要求5所述的方法,其特征在于,还包括:
所述第一微服务接收临时超时时间阈值,若所述临时超时时间阈值大于0,所述第一微服务获取对所述接收请求的处理时间与所述临时超时时间阈值的差值,将所述差值与当前超时时间阈值中更小值作为临时超时时间阈值,在调用第三微服务时,将所述临时超时时间阈值发送至所述第三微服务,所述第三微服务和所述第二微服务为相同或不同的微服务,所述临时超时时间阈值为第四微服务调用所述第一微服务时发送至所述第一微服务的。
9.如权利要求7或8所述的方法,其特征在于,若所述第四微服务为处理接收请求的第一个微服务,所述临时超时时间阈值是通过如下方式得到的,包括:
所述第四微服务将对所述接收请求的处理时间与当前超时时间阈值的差值作为所述临时超时时间阈值,在调用所述第一微服务时,将所述临时超时时间阈值发送至所述第一微服务。
10.一种业务系统参数配置装置,其特征在于,所述业务系统中包含多个微服务,所述装置包括:
收发模块,用于接收各微服务上报的各处理请求记录;其中,任一处理请求记录用于记录第一微服务对第二微服务进行调用时的调用信息;所述调用信息中包括所述第二微服务的标识和调用状况;所述第一微服务和所述第二微服务为所述各微服务中存在调用关系的任意两个微服务;
处理模块,用于针对任一第二微服务,根据具有所述第二微服务的标识的各处理请求记录,确定所述第二微服务的更新参数阈值;将所述第二微服务的更新参数阈值作为所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
11.一种业务系统微服务执行装置,其特征在于,所述装置包括:
处理模块,用于在调用第二微服务时,在处理请求记录中记录针对所述第二微服务的调用信息;所述第二调用信息中包括第二微服务的标识和调用状况;
收发模块,用于所述第一微服务上报所述处理请求记录;所述处理请求记录用于更新所述第二微服务的调用参数阈值;所述第二微服务的调用参数阈值用于所述第二微服务在被调用时确定是否执行调用请求的依据。
12.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至4、5至9任一项所述的方法。
13.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至4、5至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210749545.7A CN115118769B (zh) | 2022-06-28 | 2022-06-28 | 一种业务系统参数配置、微服务执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210749545.7A CN115118769B (zh) | 2022-06-28 | 2022-06-28 | 一种业务系统参数配置、微服务执行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115118769A true CN115118769A (zh) | 2022-09-27 |
CN115118769B CN115118769B (zh) | 2024-02-02 |
Family
ID=83330805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210749545.7A Active CN115118769B (zh) | 2022-06-28 | 2022-06-28 | 一种业务系统参数配置、微服务执行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118769B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107846295A (zh) * | 2016-09-19 | 2018-03-27 | 华为技术有限公司 | 微服务配置装置及方法 |
CN109684105A (zh) * | 2018-12-18 | 2019-04-26 | 中国平安人寿保险股份有限公司 | 在微服务架构下对请求进行控制的方法、设备和存储介质 |
CN109976935A (zh) * | 2019-03-14 | 2019-07-05 | 北京三快在线科技有限公司 | 微服务架构、微服务节点及其熔断恢复方法、装置 |
WO2019232962A1 (zh) * | 2018-06-06 | 2019-12-12 | 平安科技(深圳)有限公司 | 数据处理方法、系统、计算机设备和存储介质 |
CN112685252A (zh) * | 2020-12-25 | 2021-04-20 | 深圳前海微众银行股份有限公司 | 微服务监控方法、装置、设备和存储介质 |
CN113326061A (zh) * | 2021-06-23 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 熔断配置修改方法、装置、设备及可读存储介质 |
CN113783822A (zh) * | 2020-06-03 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种服务超时管理方法和装置 |
-
2022
- 2022-06-28 CN CN202210749545.7A patent/CN115118769B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107846295A (zh) * | 2016-09-19 | 2018-03-27 | 华为技术有限公司 | 微服务配置装置及方法 |
WO2019232962A1 (zh) * | 2018-06-06 | 2019-12-12 | 平安科技(深圳)有限公司 | 数据处理方法、系统、计算机设备和存储介质 |
CN109684105A (zh) * | 2018-12-18 | 2019-04-26 | 中国平安人寿保险股份有限公司 | 在微服务架构下对请求进行控制的方法、设备和存储介质 |
CN109976935A (zh) * | 2019-03-14 | 2019-07-05 | 北京三快在线科技有限公司 | 微服务架构、微服务节点及其熔断恢复方法、装置 |
CN113783822A (zh) * | 2020-06-03 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种服务超时管理方法和装置 |
CN112685252A (zh) * | 2020-12-25 | 2021-04-20 | 深圳前海微众银行股份有限公司 | 微服务监控方法、装置、设备和存储介质 |
CN113326061A (zh) * | 2021-06-23 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 熔断配置修改方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115118769B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10812333B2 (en) | Microservice configuration apparatus and method | |
US20200137151A1 (en) | Load balancing engine, client, distributed computing system, and load balancing method | |
EP3489825A1 (en) | Method, apparatus and computer readable storage medium for processing service | |
CN107040406B (zh) | 一种端云协同计算系统及其容错方法 | |
CN112099935B (zh) | 一种任务处理方法及装置 | |
CN110221927A (zh) | 异步消息处理方法和装置 | |
CN109766172A (zh) | 一种异步任务调度方法以及装置 | |
CN108829519A (zh) | 基于云平台的任务调度方法、云平台及计算机可读存储介质 | |
CN112817694A (zh) | 分布式系统的自动负载均衡方法及装置 | |
CN111200606A (zh) | 深度学习模型任务处理方法、系统、服务器及存储介质 | |
CN112783672A (zh) | 一种远程过程调用处理方法及系统 | |
CN113742109A (zh) | 第三方服务对接方法、装置、设备及存储介质 | |
CN113328906B (zh) | 一种流量实时监控方法、装置、存储介质及电子设备 | |
US10798161B2 (en) | Method and system for autoscaling applications | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN115118769A (zh) | 一种业务系统参数配置、微服务执行方法及装置 | |
CN112286623B (zh) | 一种信息处理方法及装置、存储介质 | |
CN109558254B (zh) | 异步回调方法、系统、装置及计算机可读存储介质 | |
CN113965563B (zh) | 基于模型的业务处理方法及装置、服务器 | |
CN112764837B (zh) | 数据上报方法、装置、存储介质及终端 | |
CN111679899B (zh) | 任务调度方法、装置、平台设备及存储介质 | |
CN114936089A (zh) | 资源调度方法、系统、设备及存储介质 | |
CN114385351A (zh) | 云管理平台负载均衡性能优化方法、装置、设备、介质 | |
CN115250276A (zh) | 分布式系统及数据处理的方法和装置 | |
CN113747506A (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 |