CN114244729A - 一种适用于服务编排的漏斗型超时控制方法及装置 - Google Patents
一种适用于服务编排的漏斗型超时控制方法及装置 Download PDFInfo
- Publication number
- CN114244729A CN114244729A CN202111458899.8A CN202111458899A CN114244729A CN 114244729 A CN114244729 A CN 114244729A CN 202111458899 A CN202111458899 A CN 202111458899A CN 114244729 A CN114244729 A CN 114244729A
- Authority
- CN
- China
- Prior art keywords
- service
- time length
- consumed
- request message
- service request
- 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 104
- 238000012545 processing Methods 0.000 claims abstract description 103
- 230000008569 process Effects 0.000 claims abstract description 43
- 238000001514 detection method Methods 0.000 claims abstract description 29
- 230000002159 abnormal effect Effects 0.000 claims abstract description 24
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 239000002131 composite material Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000009530 blood pressure measurement Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种适用于服务编排的漏斗型超时控制方法及装置。该发明包括:接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间;对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长;在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息;检测服务编排对应的已消耗时长是否大于等于预设处理时长;在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排。通过本发明,解决了相关技术中跨多个系统的交易的复杂场景内,无法实现交易粒度上的精细超时控制的问题。
Description
技术领域
本发明涉及远程调用服务超时控制领域,具体而言,涉及一种适用于服务编排的漏斗型超时控制方法及装置。
背景技术
相关技术中,无论是HTTP还是TCP协议的远程调用,超时控制都是关注的技术点,超时控制即在一个合理的时间范围内,请求者得不到响应时得到一个超时异常后快速失败并释放连接资源,没有超时控制会导致HTTP连接、TCP连接等资源被大量消耗直至耗尽。
现有基于TCP连接的超时控制方式仅能控制客户端到服务端两者间的调用,如果一支交易需要跨了多个服务端,如A远程调用B之后A再远程调用C,A和B之间约定超时时间为3秒,A和C之间约定超时时间为2秒,则此种超时控制方式可实现A到B和A到C两两间的固定超时控制,但是无法在交易级别上实现精细的超时控制,例如交易超时时间约定为5秒,A调用B已经消耗了2秒的情况下,A再去调用C的超时时间设置为3秒最合适,使用固定的超时时间设置无法实现。
如果采用传统超时控制方式,那么交易的超时时间往往需要设置为服务编排里各个原子服务超时时间之和,而为了避免网络抖动、HTTP连接池资源紧张、服务垃圾回收等不可控原因导致服务提供方偶发的响应时间变慢,所以需要组合服务设置的原子服务调用的超时时间有较大的裕量,这就往往导致整个交易的超时时间设置的很长,甚至其长度到了不甚合理的地步。在限定的时间内从组合服务得到交易处理结果,然而目前超时控制方式普遍聚焦在客户端和服务端单次两两间的远程调用上,在复杂的远程调用场景下,如交易跨了多个系统,无法实现交易粒度上的精细超时控制。
针对相关技术中存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种适用于服务编排的漏斗型超时控制方法及装置,以解决相关技术中在跨多个系统的交易的复杂场景内,无法实现交易粒度上的精细超时控制的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种适用于服务编排的漏斗型超时控制方法。该发明包括:接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间;对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长;在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,其中,服务编排包含多次调用原子服务;检测服务编排对应的已消耗时长是否大于或者等于预设处理时长;在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排。
进一步地,在接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间之前,该方法还包括:获取控制信息,并将控制信息设置在服务请求报文的报文头中,其中,控制信息至少包括以下信息:服务请求的来源、服务请求对应的服务编排、处理服务编排对应的预设处理时长、服务编排对应的已消耗时长;获取业务信息,并将业务信息设置在服务请求报文的报文体中。
进一步地,接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间,包括:对服务请求报文进行前处理操作,以记录服务请求报文对应的请求开始时间,并将请求开始时间存储在预设访问区域内,其中,执行服务编排的过程中,预设访问区域可供访问。
进一步地,在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,包括:在每检测到调用原子服务时,记录当前时间;从预设访问区域内读取服务请求报文对应的请求开始时间;将当前时间减去请求开始时间以得到执行服务编排对应的已消耗时间;将服务请求报文中设置的已消耗时间更换为计算得到的已消耗时间。
进一步地,在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息的过程中,该方法还包括:读取报文头中服务编排对应的已消耗时长以及预设处理时长;计算预设处理时长与已消耗时长之间的时长差值,并将时长差值确定为服务编排对应的剩余时长;将剩余时长设置在用于读取原子服务的TCP连接中。
进一步地,在检测服务编排对应的已消耗时长是否大于或者等于预设处理时长之后,该方法还包括:在已消耗时长小于预设处理时长的情况下,计算预设处理时长与已消耗时长之间的差值时长并将差值时长确定为剩余处理时长,并检测在剩余处理时长对应的时间内是否读取到调用原子服务的返回结果;在剩余处理时长对应的时间内没有读取到返回结果的情况下,控制PCS抛出超时异常,并依据超时异常终止执行服务编排。
为了实现上述目的,根据本发明的另一方面,提供了一种适用于服务编排的漏斗型超时控制装置。该装置包括:第一获取单元,用于接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间;确定单元,用于对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长;更新单元,用于在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,其中,服务编排包含多次调用原子服务;检测单元,用于检测服务编排对应的已消耗时长是否大于或者等于预设处理时长;第一终止单元,用于在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排。
进一步地,该装置包括:第一设置单元,用于在接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间之前,获取控制信息,并将控制信息设置在服务请求报文的报文头中,其中,控制信息至少包括以下信息:服务请求的来源、服务请求对应的服务编排、处理服务编排对应的预设处理时长、服务编排对应的已消耗时长;第二设置单元,用于获取业务信息,并将业务信息设置在服务请求报文的报文体中。
为了实现上述目的,根据本申请的另一方面,提供了一种计算机可读存储介质,该计算机可读存储介质包括存储的程序,其中,该程序执行上述任意一项的一种适用于服务编排的漏斗型超时控制方法。
为了实现上述目的,根据本申请的另一方面,提供了一种处理器,处理器用于运行程序,其中,该程序执行上述任意一项的一种适用于服务编排的漏斗型超时控制方法。
通过本发明,采用以下步骤:接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间;对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长;在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,其中,服务编排包含多次调用原子服务;检测服务编排对应的已消耗时长是否大于或者等于预设处理时长;在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排,解决了相关技术中在跨多个系统的交易的复杂场景内,无法实现交易粒度上的精细超时控制的问题,进而达到了提高超时控制效率的技术效果。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例提供的一种适用于服务编排的漏斗型超时控制方法的流程图;
图2是根据本发明实施例提供的一种适用于服务编排的漏斗型超时控制方法对应的示意图;
图3是根据本发明实施例提供的一种适用于服务编排的漏斗型超时控制装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本发明实施例涉及的部分名词或术语进行说明:
HTTP:HyperText Transfer Protocol,超文本传输协议,定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。
TCP:Transmission Control Protocol,是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
RPC:Remote Procedure Call,远程过程调用,可简单理解为一个节点请求另一个节点提供的服务。
原子服务:用来实现某个特定业务逻辑的服务,可独立部署。
服务编排:将一到多个原子服务按一定顺序排列组合,形成一个更粗粒度的服务。
组合服务:在服务编排的基础上增加通用前处理逻辑和通用后处理逻辑,可独立部署。
根据本发明的实施例,提供了一种适用于服务编排的漏斗型超时控制方法。
图1是根据本发明实施例的一种适用于服务编排的漏斗型超时控制方法的流程图。如图1所示,该发明包括以下步骤:
步骤S101,接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间。
上述地,在分布式微服务架构下,交易请求从发出到最终获取到响应结果中间可能会途经同一个系统的多个服务甚至跨越多个不同系统,所以服务请求首先路由到组合服务处理,组合服务再根据服务编排依次远程调用原子服务,本申请从以用户为中心的角度来设计,从交易的粒度上去把握合理的超时控制。
上述地,在本申请中,客户端采用报文的形式来请求组合服务,服务请求报文的请求开始时间为组合服务中的前处理接收到服务请求报文的请求开始时间。
步骤S102,对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长。
上述地,在本申请中,将预设的执行服务编排的总时长(也即预设处理时长,也即最大超时时间)设置在服务请求报文中,通过服务请求报文的传输将预设处理时长贯穿在整支服务交易中。
步骤S103,在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,其中,服务编排包含多次调用原子服务。
上述地,每远程调用一次原子服务,需要确定整支交易的已消耗时长,重新计算交易剩余可用时间,并将之作为后续远程调用的超时时间。
步骤S104,检测服务编排对应的已消耗时长是否大于或者等于预设处理时长。
步骤S105,在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排。
上述地,本申请中,通过让组合服务远程调用原子服务之前,计算交易剩余可用时间,并将之作为后续远程调用的超时时间,随着交易过程的推进,超时时间逐渐收窄,呈现一个漏斗形,可做到尽可能快的超时后失败,避免组合服务的调用方已经报超时的情况下,服务端依然尝试继续执行后续编排的问题,从而实现精细化的超时控制。
在一种可选的实例中,在接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间之前,该方法还包括:获取控制信息,并将控制信息设置在服务请求报文的报文头中,其中,控制信息至少包括以下信息:服务请求的来源、服务请求对应的服务编排、处理服务编排对应的预设处理时长、服务编排对应的已消耗时长;获取业务信息,并将业务信息设置在服务请求报文的报文体中。
上述地,本申请提供的实施例中,服务请求报文由报文头和报文体组成,最初的服务请求报文头中初始已消耗时间为0,报文头中包含控制信息,其中的服务编排对应的已消耗时长随超时检测的进行动态更新,同时,报文体中包含客户请求的具体业务信息。
在一种可选的实例中,接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间,包括:对服务请求报文进行前处理操作,以记录服务请求报文对应的请求开始时间,并将请求开始时间存储在预设访问区域内,其中,执行服务编排的过程中,预设访问区域可供访问。
上述地,组合服务接到客户端发来的服务请求报文后,在前处理中记录下服务请求开始时间并放入预设范文区域的上下文中。服务请求报文的请求开始时间是服务请求报文的达到时间,预设访问区域在报文的内存中,是在交易过程中可以随时访问的区域,在每远程调用一次原子服务时,预设访问区域被访问以读取预设访问区域内的请求开始时间,并依据请求开始时间计算整个服务编排的已消耗时长。
在一种可选的实例中,在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,包括:在每检测到调用原子服务时,记录当前时间;从预设访问区域内读取服务请求报文对应的请求开始时间;将当前时间减去请求开始时间以得到执行服务编排对应的已消耗时间;将服务请求报文中设置的已消耗时间更换为计算得到的已消耗时间。
上述地,将交易已消耗时长设置到报文头中,每次远程调用原子服务之前,做超时检测来更新已消耗时长,并依据已消耗时长以及报文头中包含的预设处理时长来重新计算交易剩余可用时长,并将之作为后续远程调用的超时时长,实现了超时时长的动态设置,由服务编排的超时检测步骤得到的。
在一种可选的实例中,在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息的过程中,该方法还包括:读取报文头中服务编排对应的已消耗时长以及预设处理时长;计算预设处理时长与已消耗时长之间的时长差值,并将时长差值确定为服务编排对应的剩余时长;将剩余时长设置在用于读取原子服务的TCP连接中。
上述地,当前技术中远程调用普遍采用的是基于TCP连接的读超时控制方式,即客户端与服务端建立TCP连接后,如果客户端在一个限定的时间内没有从TCP连接里读取到响应时,客户端主动抛超时异常从而结束因为读取动作而阻塞的客户端工作线程。当前TCP连接读超时时间一般采用配置方式设置,即客户端和服务端商定一个固定超时时间,不在运行时动态修改超时时间。TCP是在互联网络上提供的可靠的端到端字节流的一个传输协议。服务编排中远程调用原子服务时,使用交易超时时长减去报文头中的已消耗时长计算交易剩余可用时长,设置TCP连接读超时时长为交易剩余可用时长。
在一种可选的实例中,在检测服务编排对应的已消耗时长是否大于或者等于预设处理时长之后,该方法还包括:在已消耗时长小于预设处理时长的情况下,计算预设处理时长与已消耗时长之间的差值时长并将差值时长确定为剩余处理时长,并检测在剩余处理时长对应的时间内是否读取到调用原子服务的返回结果;在剩余处理时长对应的时间内没有读取到返回结果的情况下,控制PCS抛出超时异常,并依据超时异常终止执行服务编排。
上述地,PCS是物理编码子层,位于协调子层和物理介质接入层子层之间。当组合服务调用原子服务前超时检测时尚未超时,但因为PCS执行缓慢或者网络延迟等原因导致PCS在交易剩余可用时间内没有读取到返回结果,PCS作为请求发起方直接抛超时异常,服务编排终止。
本发明实施例提供的一种适用于服务编排的漏斗型超时控制方法,通过接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间;对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长;在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,其中,服务编排包含多次调用原子服务;检测服务编排对应的已消耗时长是否大于或者等于预设处理时长;在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排,解决了相关技术中在跨多个系统的交易的复杂场景内,无法实现交易粒度上的精细超时控制的问题,进而达到了提高超时控制效率的技术效果。
在本申请提供的另一种可选的实施例中,图2是根据本发明实施例提供的一种适用于服务编排的漏斗型超时控制方法对应的示意图,其中包括:
组合服务接收请求报文,前处理记录请求报文的到来时间,在服务编排的过程中,每远程调用原子服务一次就进行一次超时检测,并更新请求报文中的已消耗时长信息,后处理中已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排。
在组合服务层级上设置整个交易的超时,在正常压测或者评估超时的基础上适当增加富裕量,让交易的超时时间控制在合理范围内,不至组合服务的调用方过久等待。通过让组合服务远程调用原子服务之前,计算交易剩余可用时间,并将之作为后续远程调用的超时时间,随着交易过程的推进,超时时间逐渐收窄,呈现一个漏斗形,可做到尽快的超时后失败,避免组合服务的调用方已经报超时的情况下,服务端依然尝试继续执行后续编排的问题,从而实现精细化的超时控制。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种适用于服务编排的漏斗型超时控制装置,需要说明的是,本发明实施例的一种适用于服务编排的漏斗型超时控制装置可以用于执行本发明实施例所提供的用于一种适用于服务编排的漏斗型超时控制方法。以下对本发明实施例提供的一种适用于服务编排的漏斗型超时控制装置进行介绍。
图3是根据本发明实施例的一种适用于服务编排的漏斗型超时控制装置的示意图。如图3所示,该装置包括:第一获取单元301,用于接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间;确定单元302,用于对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长;更新单元303,用于在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,其中,服务编排包含多次调用原子服务;检测单元304,用于检测服务编排对应的已消耗时长是否大于或者等于预设处理时长;第一终止单元305,用于在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排。
在一种可选的实例中,该装置包括:第一设置单元,用于在接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间之前,获取控制信息,并将控制信息设置在服务请求报文的报文头中,其中,控制信息至少包括以下信息:服务请求的来源、服务请求对应的服务编排、处理服务编排对应的预设处理时长、服务编排对应的已消耗时长;第二设置单元,用于获取业务信息,并将业务信息设置在服务请求报文的报文体中。
在一种可选的实例中,第一获取单元301包括:第一记录子单元,用于对服务请求报文进行前处理操作,以记录服务请求报文对应的请求开始时间,并将请求开始时间存储在预设访问区域内,其中,执行服务编排的过程中,预设访问区域可供访问。
在一种可选的实例中,更新单元303包括:第二记录子单元,用于在每检测到调用原子服务时,记录当前时间;读取子单元,用于从预设访问区域内读取服务请求报文对应的请求开始时间;计算子单元,用于将当前时间减去请求开始时间以得到执行服务编排对应的已消耗时间;更换子单元,用于将服务请求报文中设置的已消耗时间更换为计算得到的已消耗时间。
在一种可选的实例中,该装置还包括:读取单元,用于在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息的过程中,读取报文头中服务编排对应的已消耗时长以及预设处理时长;第一计算单元,用于计算预设处理时长与已消耗时长之间的时长差值,并将时长差值确定为服务编排对应的剩余时长;设置单元,用于将剩余时长设置在用于读取原子服务的TCP连接中。
在一种可选的实例中,该装置还包括:第二计算单元,用于在检测服务编排对应的已消耗时长是否大于或者等于预设处理时长之后,在已消耗时长小于预设处理时长的情况下,计算预设处理时长与已消耗时长之间的差值时长并将差值时长确定为剩余处理时长,并检测在剩余处理时长对应的时间内是否读取到调用原子服务的返回结果;第二终止单元,用于在剩余处理时长对应的时间内没有读取到返回结果的情况下,控制PCS抛出超时异常,并依据超时异常终止执行服务编排。
本发明实施例提供的一种适用于服务编排的漏斗型超时控制装置,通过接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间;对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长;在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,其中,服务编排包含多次调用原子服务;检测服务编排对应的已消耗时长是否大于或者等于预设处理时长;在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排,解决了相关技术中在跨多个系统的交易的复杂场景内,无法实现交易粒度上的精细超时控制的问题,进而达到了提高超时控制效率的技术效果。
所述一种适用于服务编排的漏斗型超时控制装置包括处理器和存储器,上述第一获取单元301等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中在跨多个系统的交易的复杂场景内,无法实现交易粒度上的精细超时控制的技术问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述一种适用于服务编排的漏斗型超时控制方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述一种适用于服务编排的漏斗型超时控制方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间;对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长;在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,其中,服务编排包含多次调用原子服务;检测服务编排对应的已消耗时长是否大于或者等于预设处理时长;在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排。
在一种可选的实例中,在接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间之前,该方法还包括:获取控制信息,并将控制信息设置在服务请求报文的报文头中,其中,控制信息至少包括以下信息:服务请求的来源、服务请求对应的服务编排、处理服务编排对应的预设处理时长、服务编排对应的已消耗时长;获取业务信息,并将业务信息设置在服务请求报文的报文体中。
在一种可选的实例中,接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间,包括:对服务请求报文进行前处理操作,以记录服务请求报文对应的请求开始时间,并将请求开始时间存储在预设访问区域内,其中,执行服务编排的过程中,预设访问区域可供访问。
在一种可选的实例中,在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,包括:在每检测到调用原子服务时,记录当前时间;从预设访问区域内读取服务请求报文对应的请求开始时间;将当前时间减去请求开始时间以得到执行服务编排对应的已消耗时间;将服务请求报文中设置的已消耗时间更换为计算得到的已消耗时间。
在一种可选的实例中,在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息的过程中,该方法还包括:读取报文头中服务编排对应的已消耗时长以及预设处理时长;计算预设处理时长与已消耗时长之间的时长差值,并将时长差值确定为服务编排对应的剩余时长;将剩余时长设置在用于读取原子服务的TCP连接中。
在一种可选的实例中,的在检测服务编排对应的已消耗时长是否大于或者等于预设处理时长之后,该方法还包括:在已消耗时长小于预设处理时长的情况下,计算预设处理时长与已消耗时长之间的差值时长并将差值时长确定为剩余处理时长,并检测在剩余处理时长对应的时间内是否读取到调用原子服务的返回结果;在剩余处理时长对应的时间内没有读取到返回结果的情况下,控制PCS抛出超时异常,并依据超时异常终止执行服务编排。
本文中的设备可以是服务器、PC、PAD、手机等。
本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间;对服务请求报文进行分析,以确定服务请求报文中包含的服务编排对应的预设处理时长;在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,其中,服务编排包含多次调用原子服务;检测服务编排对应的已消耗时长是否大于或者等于预设处理时长;在已消耗时长大于或者等于预设处理时长的情况下,抛出异常信息并依据异常信息终止执行服务编排。
在一种可选的实例中,在接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间之前,该方法还包括:获取控制信息,并将控制信息设置在服务请求报文的报文头中,其中,控制信息至少包括以下信息:服务请求的来源、服务请求对应的服务编排、处理服务编排对应的预设处理时长、服务编排对应的已消耗时长;获取业务信息,并将业务信息设置在服务请求报文的报文体中。
在一种可选的实例中,接收客户端发来的服务请求报文,获取服务请求报文的请求开始时间,包括:对服务请求报文进行前处理操作,以记录服务请求报文对应的请求开始时间,并将请求开始时间存储在预设访问区域内,其中,执行服务编排的过程中,预设访问区域可供访问。
在一种可选的实例中,在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息,包括:在每检测到调用原子服务时,记录当前时间;从预设访问区域内读取服务请求报文对应的请求开始时间;将当前时间减去请求开始时间以得到执行服务编排对应的已消耗时间;将服务请求报文中设置的已消耗时间更换为计算得到的已消耗时间。
在一种可选的实例中,在服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行服务编排对应的已消耗时长,并依据已消耗时长更新服务请求报文中的已消耗时长信息的过程中,该方法还包括:读取报文头中服务编排对应的已消耗时长以及预设处理时长;计算预设处理时长与已消耗时长之间的时长差值,并将时长差值确定为服务编排对应的剩余时长;将剩余时长设置在用于读取原子服务的TCP连接中。
在一种可选的实例中,的在检测服务编排对应的已消耗时长是否大于或者等于预设处理时长之后,该方法还包括:在已消耗时长小于预设处理时长的情况下,计算预设处理时长与已消耗时长之间的差值时长并将差值时长确定为剩余处理时长,并检测在剩余处理时长对应的时间内是否读取到调用原子服务的返回结果;在剩余处理时长对应的时间内没有读取到返回结果的情况下,控制PCS抛出超时异常,并依据超时异常终止执行服务编排。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种适用于服务编排的漏斗型超时控制方法,其特征在于,包括:
接收客户端发来的服务请求报文,获取所述服务请求报文的请求开始时间;
对所述服务请求报文进行分析,以确定所述服务请求报文中包含的服务编排对应的预设处理时长;
在所述服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行所述服务编排对应的已消耗时长,并依据所述已消耗时长更新所述服务请求报文中的已消耗时长信息,其中,所述服务编排包含多次调用所述原子服务;
检测所述服务编排对应的所述已消耗时长是否大于或者等于所述预设处理时长;
在所述已消耗时长大于或者等于所述预设处理时长的情况下,抛出异常信息并依据所述异常信息终止执行所述服务编排。
2.根据权利要求1所述的方法,其特征在于,在接收客户端发来的服务请求报文,获取所述服务请求报文的请求开始时间之前,所述方法还包括:
获取控制信息,并将所述控制信息设置在所述服务请求报文的报文头中,其中,所述控制信息至少包括以下信息:服务请求的来源、所述服务请求对应的服务编排、处理所述服务编排对应的预设处理时长、所述服务编排对应的已消耗时长;
获取业务信息,并将所述业务信息设置在所述服务请求报文的报文体中。
3.根据权利要求1所述的方法,其特征在于,接收客户端发来的服务请求报文,获取所述服务请求报文的请求开始时间,包括:
对所述服务请求报文进行前处理操作,以记录所述服务请求报文对应的请求开始时间,并将所述请求开始时间存储在预设访问区域内,其中,执行所述服务编排的过程中,所述预设访问区域可供访问。
4.根据权利要求3所述的方法,其特征在于,在所述服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行所述服务编排对应的已消耗时长,并依据所述已消耗时长更新所述服务请求报文中的已消耗时长信息,包括:
在每检测到调用所述原子服务时,记录当前时间;
从所述预设访问区域内读取所述服务请求报文对应的所述请求开始时间;
将所述当前时间减去所述请求开始时间以得到执行所述服务编排对应的所述已消耗时间;
将所述服务请求报文中设置的已消耗时间更换为计算得到的所述已消耗时间。
5.根据权利要求2所述的方法,其特征在于,在所述服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行所述服务编排对应的已消耗时长,并依据所述已消耗时长更新所述服务请求报文中的已消耗时长信息的过程中,所述方法还包括:
读取所述报文头中所述服务编排对应的所述已消耗时长以及所述预设处理时长;
计算所述预设处理时长与所述已消耗时长之间的时长差值,并将所述时长差值确定为所述服务编排对应的剩余时长;
将所述剩余时长设置在用于读取所述原子服务的TCP连接中。
6.根据权利要求1所述的方法,其特征在于,在检测所述服务编排对应的所述已消耗时长是否大于或者等于所述预设处理时长之后,所述方法还包括:
在所述已消耗时长小于所述预设处理时长的情况下,计算所述预设处理时长与所述已消耗时长之间的差值时长并将所述差值时长确定为剩余处理时长,并检测在所述剩余处理时长对应的时间内是否读取到调用所述原子服务的返回结果;
在所述剩余处理时长对应的时间内没有读取到所述返回结果的情况下,控制PCS抛出超时异常,并依据所述超时异常终止执行所述服务编排。
7.一种适用于服务编排的漏斗型超时控制装置,其特征在于,包括:
第一获取单元,用于接收客户端发来的服务请求报文,获取所述服务请求报文的请求开始时间;
确定单元,用于对所述服务请求报文进行分析,以确定所述服务请求报文中包含的服务编排对应的预设处理时长;
更新单元,用于在所述服务编排的过程中,每远程调用原子服务一次,进行一次超时检测以确定执行所述服务编排对应的已消耗时长,并依据所述已消耗时长更新所述服务请求报文中的已消耗时长信息,其中,所述服务编排包含多次调用所述原子服务;
检测单元,用于检测所述服务编排对应的所述已消耗时长是否大于或者等于所述预设处理时长;
第一终止单元,用于在所述已消耗时长大于或者等于所述预设处理时长的情况下,抛出异常信息并依据所述异常信息终止执行所述服务编排。
8.根据权利要求7所述的装置,其特征在于,所述装置包括:
第一设置单元,用于在接收客户端发来的服务请求报文,获取所述服务请求报文的请求开始时间之前,获取控制信息,并将所述控制信息设置在所述服务请求报文的报文头中,其中,所述控制信息至少包括以下信息:服务请求的来源、所述服务请求对应的服务编排、处理所述服务编排对应的预设处理时长、所述服务编排对应的已消耗时长;
第二设置单元,用于获取业务信息,并将所述业务信息设置在所述服务请求报文的报文体中。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至6中任意一项所述一种适用于服务编排的漏斗型超时控制方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述一种适用于服务编排的漏斗型超时控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111458899.8A CN114244729B (zh) | 2021-12-01 | 2021-12-01 | 一种适用于服务编排的漏斗型超时控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111458899.8A CN114244729B (zh) | 2021-12-01 | 2021-12-01 | 一种适用于服务编排的漏斗型超时控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114244729A true CN114244729A (zh) | 2022-03-25 |
CN114244729B CN114244729B (zh) | 2024-08-23 |
Family
ID=80752769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111458899.8A Active CN114244729B (zh) | 2021-12-01 | 2021-12-01 | 一种适用于服务编排的漏斗型超时控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114244729B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115834500A (zh) * | 2022-11-18 | 2023-03-21 | 广州趣丸网络科技有限公司 | 一种grpc请求处理方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107733726A (zh) * | 2017-11-29 | 2018-02-23 | 新华三云计算技术有限公司 | 一种服务请求的处理方法及装置 |
CN107958414A (zh) * | 2017-11-07 | 2018-04-24 | 中国银行股份有限公司 | 一种清除cics系统长交易的方法及系统 |
US20190304445A1 (en) * | 2018-03-30 | 2019-10-03 | International Business Machines Corporation | Conversational framework |
CN110912724A (zh) * | 2018-09-18 | 2020-03-24 | 亿阳信通股份有限公司 | 一种基于参数驱动的自动业务编排方法及装置 |
CN111026367A (zh) * | 2019-11-22 | 2020-04-17 | 金证财富南京科技有限公司 | 微服务编排方法、装置、终端设备及存储介质 |
CN111078315A (zh) * | 2019-12-12 | 2020-04-28 | 拉扎斯网络科技(上海)有限公司 | 微服务编排、执行方法及系统、架构、设备、存储介质 |
CN111752740A (zh) * | 2020-06-29 | 2020-10-09 | 深圳前海微众银行股份有限公司 | 微服务异常补偿方法、装置、设备与计算机可读存储介质 |
-
2021
- 2021-12-01 CN CN202111458899.8A patent/CN114244729B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107958414A (zh) * | 2017-11-07 | 2018-04-24 | 中国银行股份有限公司 | 一种清除cics系统长交易的方法及系统 |
CN107733726A (zh) * | 2017-11-29 | 2018-02-23 | 新华三云计算技术有限公司 | 一种服务请求的处理方法及装置 |
US20190304445A1 (en) * | 2018-03-30 | 2019-10-03 | International Business Machines Corporation | Conversational framework |
CN110912724A (zh) * | 2018-09-18 | 2020-03-24 | 亿阳信通股份有限公司 | 一种基于参数驱动的自动业务编排方法及装置 |
CN111026367A (zh) * | 2019-11-22 | 2020-04-17 | 金证财富南京科技有限公司 | 微服务编排方法、装置、终端设备及存储介质 |
CN111078315A (zh) * | 2019-12-12 | 2020-04-28 | 拉扎斯网络科技(上海)有限公司 | 微服务编排、执行方法及系统、架构、设备、存储介质 |
CN111752740A (zh) * | 2020-06-29 | 2020-10-09 | 深圳前海微众银行股份有限公司 | 微服务异常补偿方法、装置、设备与计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115834500A (zh) * | 2022-11-18 | 2023-03-21 | 广州趣丸网络科技有限公司 | 一种grpc请求处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114244729B (zh) | 2024-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12020088B2 (en) | System and method for managing concurrent events | |
US10455009B2 (en) | Optimizing a load balancer configuration | |
US11153370B2 (en) | Resource scheduling method and system | |
US8943196B2 (en) | Programmatically determining an execution mode for a request dispatch utilizing historic metrics | |
US10033816B2 (en) | Workflow service using state transfer | |
US7702783B2 (en) | Intelligent performance monitoring of a clustered environment | |
US9904585B1 (en) | Error handling in executing workflow state machines | |
US20100153482A1 (en) | Cloud-Based Automation of Resources | |
US9766927B1 (en) | Data flow management in processing workflows | |
CN114244729B (zh) | 一种适用于服务编排的漏斗型超时控制方法及装置 | |
CN111130900A (zh) | 基于协调服务的分布式互联的数据采集方法与装置 | |
US11748168B2 (en) | Flexible batch job scheduling in virtualization environments | |
CN106612263B (zh) | 一种用于处理应用访问请求的方法与设备 | |
CN111338775B (zh) | 一种执行定时任务的方法及设备 | |
US9971683B1 (en) | Automatic computer memory management coordination across a group of servers | |
CN112350950A (zh) | 一种请求消息控制方法及装置 | |
CN114138499B (zh) | Gpu资源利用率的监控方法、装置、计算机设备及介质 | |
CN115048186A (zh) | 业务容器的扩缩容处理方法、装置、存储介质及电子设备 | |
US20140337521A1 (en) | Evaluation of use of a service and/or function provided or called by a web service | |
WO2024066770A1 (zh) | 信息获取方法、装置和存储介质 | |
CN117319502A (zh) | 服务探活方法、系统、装置、存储介质及电子设备 | |
CN114465974A (zh) | 推送消息的处理方法、装置、处理器及电子设备 | |
CN117205541A (zh) | 一种游戏处理方法及相关设备 | |
CN115827195A (zh) | 任务处理方法、装置、非易失性存储介质及电子设备 | |
Maliosz et al. | Scaling in OpenStack Using Client Feedback |
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 |