CN111736975A - 请求控制方法、装置、计算机设备及计算机可读存储介质 - Google Patents
请求控制方法、装置、计算机设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111736975A CN111736975A CN202010601499.7A CN202010601499A CN111736975A CN 111736975 A CN111736975 A CN 111736975A CN 202010601499 A CN202010601499 A CN 202010601499A CN 111736975 A CN111736975 A CN 111736975A
- Authority
- CN
- China
- Prior art keywords
- request
- parameter
- target service
- service
- call
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5009—Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种请求控制方法、装置、计算机设备及计算机可读存储介质。所述请求控制方法用断路器监控分布式系统中应用服务对目标服务的调用请求;根据标识符查找所述目标服务的待处理请求数量;基于滑动窗口计数器工具计算所述目标服务在发送时间前的预设时间段内的请求处理失败率和请求平均响应时间;根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数;根据结束调用参数执行或结束所述调用请求,根据限流参数限定所述应用服务对所述目标服务的请求数量,根据一致性参数修改执行所述调用请求的方式,根据排队数量参数删除或增加待处理请求。本发明提升分布式系统的服务稳定性。
Description
技术领域
本发明涉及分布式服务技术领域,具体涉及一种请求控制方法、装置、计算机设备及计算机可读存储介质。
背景技术
分布式系统中服务间容易产生强依赖,当其中一个服务响应时间过长或不可用时,可能会出现调用链上层服务资源占用积聚从而引发服务雪崩。分布式系统中,各个系统错综复杂,一个系统依赖的服务比较多,而且会有多级依赖。当其中某一个服务出现问题,在高并发的情况下都有可能导致整个系统的瘫痪。
比如服务A调用服务B,服务B调用服务C,当服务C服务响应时间过长时,服务B会阻塞线程等待服务C响应,此时服务B的阻塞线程越来越多直到资源耗尽,进而影响服务A。
发明内容
鉴于以上内容,有必要提出一种请求控制方法、装置、计算机设备及计算机可读存储介质,其可以控制分布式系统中应用服务对目标服务的调用请求。
本申请的第一方面提供一种请求控制方法,所述请求控制方法包括:
用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间;
当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量;
基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间;
根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数;
根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
另一种可能的实现方式中,所述根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数包括:
若所述待处理请求数量大于第一预设值,和/或所述请求处理失败率大于第二预设值,和/或所述请求平均响应时间大于第三预设值,将所述结束调用参数确定为肯定型参数。
另一种可能的实现方式中,所述根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数包括:
若所述待处理请求数量大于第一预设值,和/或所述请求处理失败率大于第二预设值,和/或所述请求平均响应时间大于第三预设值,将所述结束调用参数确定为否定型参数,将所述限流参数确定为第四预设值,将所述一致性参数确定为否定型参数,将所述排队数量参数确定为第五预设值。
另一种可能的实现方式中,所述根据所述结束调用参数执行或结束所述调用请求包括:
若所述结束调用参数为否定型参数,关闭熔断开关,执行所述调用请求;
若所述结束调用参数为肯定型参数,开启熔断开关,结束所述调用请求,并在预设时间后重新确定所述控制参数。
另一种可能的实现方式中,所述根据所述一致性参数修改执行所述调用请求的方式包括:
若所述一致性参数为肯定型参数,则同步执行所述调用请求;
若所述一致性参数为否定型参数,则异步执行所述调用请求。
另一种可能的实现方式中,在所述异步执行所述调用请求时,所述请求控制方法还包括:
若所述目标服务的类型不为基础服务,则暂停执行所述调用请求。
另一种可能的实现方式中,在所述异步执行所述调用请求时,所述请求控制方法还包括:
判断执行所述调用请求的目标线程是否存在所述目标服务的控制锁;
如果执行所述调用请求的目标线程不存在所述目标服务的控制锁,暂停执行所述调用请求。
本申请的第二方面提供一种请求控制装置,所述请求控制装置包括:
监控模块,用于用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间;
查找模块,用于当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量;
计算模块,用于基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间;
确定模块,用于根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数;
控制模块,用于根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
本申请的第三方面提供一种计算机设备,所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述请求控制方法。
本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述请求控制方法。
本发明控制分布式系统中应用服务对目标服务的调用请求,能够提升分布式系统的服务稳定性。
附图说明
图1是本发明实施例提供的请求控制方法的流程图。
图2是本发明实施例提供的请求控制装置的结构图。
图3是本发明实施例提供的计算机设备的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
优选地,本发明的请求控制方法应用在一个或者多个计算机设备中。所述计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
实施例一
图1是本发明实施例一提供的请求控制方法的流程图。所述请求控制方法应用于计算机设备,用于控制分布式系统中应用服务对目标服务的调用请求。
如图1所示,所述请求控制方法包括:
101,用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间。
可以通过断路器新建一个断路器对象,所述断路器对象中包括所述目标服务,使所述应用服务通过所述断路器调用所述目标服务。在具体应用场景中,当所述应用服务调用所述目标服务的失败次数达到指定阈值时,打开熔断开关,当所述应用服务对所述断路器对象进行访问时,所述断路器对象将直接返回error,不会调用受保护的函数。
通过所述目标服务的标识符可以唯一确定所述应用服务需要调用的服务。标识符是一个服务的唯一标识。
102,当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量。
在具体应用中,可能有多个应用服务需要调用多个服务,当多个服务不能及时响应处理大量的调用请求时,多个应用服务对多个服务的调用请求进入待处理队列,使多个服务依次响应处理各个待处理请求。通过所述目标服务的标识符可以从待处理队列中查找到所述目标服务的待处理请求,并统计待处理请求数量。
例如,目标服务A为基础服务,根据目标服务A的标识符从待处理队列中查找目标服务A的待处理请求数量为2。
所述目标服务的类型包括基础服务、除基础服务外的普通服务。
103,基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间。
初始化预设窗口时长、预设滚动时间间隔(预设窗口时长除以预设滚动时间间隔得到一个滑动窗口所包含的桶数目)。统计每个窗口时长中的请求总数和请求失败数,用所述请求失败数除以所述请求总数,得到该窗口的请求处理失败率。窗口在时间轴中以所述预设滚动时间间隔为步长滑动。
统计每个窗口时长中的多个请求的响应时间,计算所述多个请求的响应时间的平均值,得到该窗口的请求平均响应时间。
104,根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数。
所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间包含了所述目标服务的运行压力和处理情况,可以据此确定控制服务调用的压力。所述结束调用参数可以用于确定执行或结束所述调用请求,所述限流参数可以用于限定所述应用服务对所述目标服务的请求数量,所述一致性参数可以用于更改执行所述调用请求的方式,所述排队数量参数可以用于删除或增加待处理请求。
在一具体实施例中,所述根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数包括:
若所述待处理请求数量大于第一预设值,和/或所述请求处理失败率大于第二预设值,和/或所述请求平均响应时间大于第三预设值,将所述结束调用参数确定为肯定型参数。
肯定型参数可以包括“1”、“是”等表示肯定意义的参数;否定型参数可以包括“0”、“否”等表示否定意义的参数。
在一具体实施例中,所述根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数包括:
若所述待处理请求数量大于第一预设值,和/或所述请求处理失败率大于第二预设值,和/或所述请求平均响应时间大于第三预设值,将所述结束调用参数确定为否定型参数,将所述限流参数确定为第四预设值,将所述一致性参数确定为否定型参数,将所述排队数量参数确定为第五预设值。
在一具体实施例中,获取所述目标服务的安全等级;根据所述目标服务的安全等级确定所述第一预设值。具体地,高安全等级的目标服务对应的第一预设值小于低安全等级的目标服务对应的第一预设值。例如,目标服务A为高安全等级的服务(如,银行服务、网银支付服务等);目标服务B为低安全等级的服务(如,普通信息查询服务、信息发送服务等)。将目标服务A对应的第一预设值设置为2;将目标服务B对应的第一预设值设置为6。
在一具体实施例中,根据所述目标服务的安全等级确定所述第二预设值。具体地,高安全等级的目标服务对应的第二预设值小于低安全等级的目标服务对应的第二预设值。
在一具体实施例中,根据所述目标服务的安全等级确定所述第三预设值。具体地,高安全等级的目标服务对应的第三预设值小于低安全等级的目标服务对应的第三预设值。
105,根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
在一具体实施例中,所述根据所述结束调用参数执行或结束所述调用请求包括:
若所述结束调用参数为否定型参数,关闭熔断开关,执行所述调用请求;
若所述结束调用参数为肯定型参数,开启熔断开关,结束所述调用请求,并在预设时间后重新确定所述控制参数。
当所述结束调用参数为肯定型参数,开启熔断开关,结束所述调用请求,未对所述目标服务进行调用(可以直接丢弃所述调用请求,并向所述应用服务返回空结果)。从而使服务调用降级,节省了网络资源,并使所述应用服务不必等待所述目标服务作出响应。因此,所述应用服务不会因等待所述目标服务作出响应而阻塞,从而提升了分布式相同的服务稳定性。
在一具体实施例中,所述根据所述一致性参数修改执行所述调用请求的方式包括:
若所述一致性参数为肯定型参数,则同步执行所述调用请求;
若所述一致性参数为否定型参数,则异步执行所述调用请求;
在一具体实施例中,异步执行所述调用请求时,所述方法还包括:
若所述目标服务的类型不为基础服务,则暂停执行所述调用请求。
在一具体实施例中,异步执行所述调用请求时,所述方法还包括:
判断执行所述调用请求的目标线程是否存在所述目标服务的控制锁;
如果执行所述调用请求的目标线程不存在所述目标服务的控制锁,暂停执行所述调用请求。
所述目标服务具有控制锁,获得所述目标服务的控制锁的线程可以访问所述目标服务;未获得所述目标服务的控制锁的线程不能访问所述目标服务,需要等待获得所述目标服务的控制锁释放所述目标服务的控制锁。
在一具体实施例中,所述根据所述排队数量参数删除或增加待处理请求包括:
获取待处理队列中的当前排队数量;
当所述当前排队数量大于所述排队数量参数,从所述待处理队列中删除待处理请求;
当所述当前排队数量小于所述排队数量参数,将新的待处理请求增加至所述待处理队列。
当所述结束调用参数为否定型参数,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。从而使服务调用降级,所述应用服务不会长时间等待所述目标服务作出响应,减少阻塞,从而提升了分布式系统的服务稳定性。
实施例一的请求控制方法控制分布式系统中应用服务对目标服务的调用请求,能够提升分布式系统的服务稳定性。
在另一实施例中,所述方法还包括:
所述目标服务的地址存储于预设配置文件中,将所述目标服务外的指定服务加入所述预设配置文件,以控制分布式系统中所述应用服务对所述指定服务的调用请求。
在另一实施例中,所述方法还包括:
若结束所述调用请求,向所述应用服务返回第六预设值。
所述第六预设值是服务阻塞提醒信息(如,服务忙)。
在另一实施例中,所述方法还包括:
若所述目标服务的类型为基础服务,执行所述调用请求;
若所述目标服务的类型为普通服务,则暂停执行所述调用请求。
在另一实施例中,所述方法还包括:
若执行所述调用请求成功且执行时长不超过预设时长阈值,更新所述请求处理失败率和所述请求平均响应时间。
实施例二
图2是本发明实施例二提供的请求控制装置的结构图。所述请求控制装置20应用于计算机设备。所述请求控制装置20用于控制分布式系统中应用服务对目标服务的调用请求。
如图2所示,所述请求控制装置20可以包括监控模块201、查找模块202、计算模块203、确定模块204、控制模块205。
监控模块201,用于用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间。
可以通过断路器新建一个断路器对象,所述断路器对象中包括所述目标服务,使所述应用服务通过所述断路器调用所述目标服务。在具体应用场景中,当所述应用服务调用所述目标服务的失败次数达到指定阈值时,打开熔断开关,当所述应用服务对所述断路器对象进行访问时,所述断路器对象将直接返回error,不会调用受保护的函数。
通过所述目标服务的标识符可以唯一确定所述应用服务需要调用的服务。标识符是一个服务的唯一标识。
查找模块202,用于当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量。
在具体应用中,可能有多个应用服务需要调用多个服务,当多个服务不能及时响应处理大量的调用请求时,多个应用服务对多个服务的调用请求进入待处理队列,使多个服务依次响应处理各个待处理请求。通过所述目标服务的标识符可以从待处理队列中查找到所述目标服务的待处理请求,并统计待处理请求数量。
例如,目标服务A为基础服务,根据目标服务A的标识符从待处理队列中查找目标服务A的待处理请求数量为2。
所述目标服务的类型包括基础服务、除基础服务外的普通服务。
计算模块203,用于基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间。
初始化预设窗口时长、预设滚动时间间隔(预设窗口时长除以预设滚动时间间隔得到一个滑动窗口所包含的桶数目)。统计每个窗口时长中的请求总数和请求失败数,用所述请求失败数除以所述请求总数,得到该窗口的请求处理失败率。窗口在时间轴中以所述预设滚动时间间隔为步长滑动。
统计每个窗口时长中的多个请求的响应时间,计算所述多个请求的响应时间的平均值,得到该窗口的请求平均响应时间。
确定模块204,用于根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数。
所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间包含了所述目标服务的运行压力和处理情况,可以据此确定控制服务调用的压力。所述结束调用参数可以用于确定执行或结束所述调用请求,所述限流参数可以用于限定所述应用服务对所述目标服务的请求数量,所述一致性参数可以用于更改执行所述调用请求的方式,所述排队数量参数可以用于删除或增加待处理请求。
在一具体实施例中,所述根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数包括:
若所述待处理请求数量大于第一预设值,和/或所述请求处理失败率大于第二预设值,和/或所述请求平均响应时间大于第三预设值,将所述结束调用参数确定为肯定型参数。
肯定型参数可以包括“1”、“是”等表示肯定意义的参数;否定型参数可以包括“0”、“否”等表示否定意义的参数。
在一具体实施例中,所述根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数包括:
若所述待处理请求数量大于第一预设值,和/或所述请求处理失败率大于第二预设值,和/或所述请求平均响应时间大于第三预设值,将所述结束调用参数确定为否定型参数,将所述限流参数确定为第四预设值,将所述一致性参数确定为否定型参数,将所述排队数量参数确定为第五预设值。
在一具体实施例中,获取所述目标服务的安全等级;根据所述目标服务的安全等级确定所述第一预设值。具体地,高安全等级的目标服务对应的第一预设值小于低安全等级的目标服务对应的第一预设值。例如,目标服务A为高安全等级的服务(如,银行服务、网银支付服务等);目标服务B为低安全等级的服务(如,普通信息查询服务、信息发送服务等)。将目标服务A对应的第一预设值设置为2;将目标服务B对应的第一预设值设置为6。
在一具体实施例中,根据所述目标服务的安全等级确定所述第二预设值。具体地,高安全等级的目标服务对应的第二预设值小于低安全等级的目标服务对应的第二预设值。
在一具体实施例中,根据所述目标服务的安全等级确定所述第三预设值。具体地,高安全等级的目标服务对应的第三预设值小于低安全等级的目标服务对应的第三预设值。
控制模块205,用于根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
在一具体实施例中,所述根据所述结束调用参数执行或结束所述调用请求包括:
若所述结束调用参数为否定型参数,关闭熔断开关,执行所述调用请求;
若所述结束调用参数为肯定型参数,开启熔断开关,结束所述调用请求,并在预设时间后重新确定所述控制参数。
当所述结束调用参数为肯定型参数,开启熔断开关,结束所述调用请求,未对所述目标服务进行调用(可以直接丢弃所述调用请求,并向所述应用服务返回空结果)。从而使服务调用降级,节省了网络资源,并使所述应用服务不必等待所述目标服务作出响应。因此,所述应用服务不会因等待所述目标服务作出响应而阻塞,从而提升了分布式相同的服务稳定性。
在一具体实施例中,所述根据所述一致性参数修改执行所述调用请求的方式包括:
若所述一致性参数为肯定型参数,则同步执行所述调用请求;
若所述一致性参数为否定型参数,则异步执行所述调用请求;
在一具体实施例中,异步执行所述调用请求时,所述控制模块还用于若所述目标服务的类型不为基础服务,则暂停执行所述调用请求。
在一具体实施例中,异步执行所述调用请求时,所述控制模块还用于判断执行所述调用请求的目标线程是否存在所述目标服务的控制锁;
如果执行所述调用请求的目标线程不存在所述目标服务的控制锁,暂停执行所述调用请求。
所述目标服务具有控制锁,获得所述目标服务的控制锁的线程可以访问所述目标服务;未获得所述目标服务的控制锁的线程不能访问所述目标服务,需要等待获得所述目标服务的控制锁释放所述目标服务的控制锁。
在一具体实施例中,所述根据所述排队数量参数删除或增加待处理请求包括:
获取待处理队列中的当前排队数量;
当所述当前排队数量大于所述排队数量参数,从所述待处理队列中删除待处理请求;
当所述当前排队数量小于所述排队数量参数,将新的待处理请求增加至所述待处理队列。
当所述结束调用参数为否定型参数,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。从而使服务调用降级,所述应用服务不会长时间等待所述目标服务作出响应,减少阻塞,从而提升了分布式系统的服务稳定性。
实施例二的请求控制装置20控制分布式系统中应用服务对目标服务的调用请求,能够提升分布式系统的服务稳定性。
在另一实施例中,所述控制模块还用于将所述目标服务外的指定服务加入所述预设配置文件,以控制分布式系统中所述应用服务对所述指定服务的调用请求。
在另一实施例中,所述请求控制装置20还包括返回模块,用于若结束所述调用请求,向所述应用服务返回第六预设值。
所述第六预设值是服务阻塞提醒信息(如,服务忙)。
在另一实施例中,所述控制模块还用于若所述目标服务的类型为基础服务,执行所述调用请求;
若所述目标服务的类型为普通服务,则暂停执行所述调用请求。
在另一实施例中,所述请求控制装置20还包括更新模块,用于若执行所述调用请求成功且执行时长不超过预设时长阈值,更新所述请求处理失败率和所述请求平均响应时间。
实施例三
本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述请求控制方法实施例中的步骤,例如图1所示的步骤101-105:
101,用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间;
102,当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量;
103,基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间;
104,根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数;
105,根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-205:
监控模块201,用于用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间;
查找模块202,用于当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量;
计算模块203,用于基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间;
确定模块204,用于根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数;
控制模块205,用于根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
实施例四
图3为本发明实施例三提供的计算机设备的示意图。所述计算机设备30包括存储器301、处理器302以及存储在所述存储器301中并可在所述处理器302上运行的计算机程序303,例如请求控制程序。所述处理器302执行所述计算机程序303时实现上述请求控制方法实施例中的步骤,例如图1所示的101-105:
101,用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间;
102,当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量;
103,基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间;
104,根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数;
105,根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-205:
监控模块201,用于用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间;
查找模块202,用于当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量;
计算模块203,用于基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间;
确定模块204,用于根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数;
控制模块205,用于根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
示例性的,所述计算机程序303可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器301中,并由所述处理器302执行,以完成本方法。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序303在所述计算机设备30中的执行过程。例如,所述计算机程序303可以被分割成图2中的监控模块201、查找模块202、计算模块203、确定模块204、控制模块205,各模块具体功能参见实施例二。
本领域技术人员可以理解,所述示意图3仅仅是计算机设备30的示例,并不构成对计算机设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备30还可以包括输入输出设备、网络接入设备、总线等。
所称处理器302可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器302也可以是任何常规的处理器等,所述处理器302是所述计算机设备30的控制中心,利用各种接口和线路连接整个计算机设备30的各个部分。
所述存储器301可用于存储所述计算机程序303,所述处理器302通过运行或执行存储在所述存储器301内的计算机程序或模块,以及调用存储在存储器301内的数据,实现所述计算机设备30的各种功能。所述存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备30的使用所创建的数据等。此外,存储器301可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
所述计算机设备30集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述请求控制方法的部分步骤。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他模块或步骤,单数不排除复数。系统权利要求中陈述的多个模块或装置也可以由一个模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种请求控制方法,其特征在于,所述请求控制方法包括:
用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间;
当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量;
基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间;
根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数;
根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
2.如权利要求1所述的请求控制方法,其特征在于,所述根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数包括:
若所述待处理请求数量大于第一预设值,和/或所述请求处理失败率大于第二预设值,和/或所述请求平均响应时间大于第三预设值,将所述结束调用参数确定为肯定型参数。
3.如权利要求1所述的请求控制方法,其特征在于,所述根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数包括:
若所述待处理请求数量大于第一预设值,和/或所述请求处理失败率大于第二预设值,和/或所述请求平均响应时间大于第三预设值,将所述结束调用参数确定为否定型参数,将所述限流参数确定为第四预设值,将所述一致性参数确定为否定型参数,将所述排队数量参数确定为第五预设值。
4.如权利要求1所述的请求控制方法,其特征在于,所述根据所述结束调用参数执行或结束所述调用请求包括:
若所述结束调用参数为否定型参数,关闭熔断开关,执行所述调用请求;
若所述结束调用参数为肯定型参数,开启熔断开关,结束所述调用请求,并在预设时间后重新确定所述控制参数。
5.如权利要求1所述的请求控制方法,其特征在于,所述根据所述一致性参数修改执行所述调用请求的方式包括:
若所述一致性参数为肯定型参数,则同步执行所述调用请求;
若所述一致性参数为否定型参数,则异步执行所述调用请求。
6.如权利要求5所述的请求控制方法,其特征在于,在所述异步执行所述调用请求时,所述请求控制方法还包括:
若所述目标服务的类型不为基础服务,则暂停执行所述调用请求。
7.如权利要求5所述的请求控制方法,其特征在于,在所述异步执行所述调用请求时,所述请求控制方法还包括:
判断执行所述调用请求的目标线程是否存在所述目标服务的控制锁;
如果执行所述调用请求的目标线程不存在所述目标服务的控制锁,暂停执行所述调用请求。
8.一种请求控制装置,其特征在于,所述请求控制装置包括:
监控模块,用于用断路器监控分布式系统中应用服务对目标服务的调用请求,所述调用请求包括所述目标服务的标识符、类型和所述调用请求的发送时间;
查找模块,用于当所述目标服务的类型为基础服务时,根据所述标识符查找所述目标服务的待处理请求数量;
计算模块,用于基于滑动窗口计数器工具计算所述目标服务在所述发送时间前的预设时间段内的请求处理失败率和请求平均响应时间;
确定模块,用于根据所述待处理请求数量、所述请求处理失败率和所述请求平均响应时间确定控制参数,所述控制参数包括结束调用参数、限流参数、一致性参数、排队数量参数;
控制模块,用于根据所述结束调用参数执行或结束所述调用请求,根据所述限流参数限定所述应用服务对所述目标服务的请求数量,根据所述一致性参数修改执行所述调用请求的方式,根据所述排队数量参数删除或增加待处理请求。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1-7中任一项所述请求控制方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述请求控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010601499.7A CN111736975A (zh) | 2020-06-28 | 2020-06-28 | 请求控制方法、装置、计算机设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010601499.7A CN111736975A (zh) | 2020-06-28 | 2020-06-28 | 请求控制方法、装置、计算机设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111736975A true CN111736975A (zh) | 2020-10-02 |
Family
ID=72651516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010601499.7A Pending CN111736975A (zh) | 2020-06-28 | 2020-06-28 | 请求控制方法、装置、计算机设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736975A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434735A (zh) * | 2021-06-24 | 2021-09-24 | 未鲲(上海)科技服务有限公司 | 自适应限流方法、装置、服务器及存储介质 |
CN113590450A (zh) * | 2021-09-27 | 2021-11-02 | 恒生电子股份有限公司 | 一种分布式系统监控方法、装置、设备及存储介质 |
WO2022271058A1 (en) * | 2021-06-21 | 2022-12-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for resilience based upon probabilistic estimate of failures |
-
2020
- 2020-06-28 CN CN202010601499.7A patent/CN111736975A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022271058A1 (en) * | 2021-06-21 | 2022-12-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for resilience based upon probabilistic estimate of failures |
CN113434735A (zh) * | 2021-06-24 | 2021-09-24 | 未鲲(上海)科技服务有限公司 | 自适应限流方法、装置、服务器及存储介质 |
CN113590450A (zh) * | 2021-09-27 | 2021-11-02 | 恒生电子股份有限公司 | 一种分布式系统监控方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783237B (zh) | 一种资源配置方法及装置 | |
CN111736975A (zh) | 请求控制方法、装置、计算机设备及计算机可读存储介质 | |
CN106547612B (zh) | 一种多任务处理方法及装置 | |
CN103544153A (zh) | 一种基于数据库的数据更新方法和系统 | |
US8108725B2 (en) | History-based conflict resolution | |
US11144538B2 (en) | Predictive database index modification | |
CN111767270A (zh) | 数据迁移方法、装置、服务器及存储介质 | |
US8954969B2 (en) | File system object node management | |
WO2021104132A1 (zh) | 一种基于云虚拟机的数据访问方法及设备 | |
US7574439B2 (en) | Managing a nested request | |
CN113126924A (zh) | 一种数据迁移方法、装置、设备及计算机可读存储介质 | |
CN106650501B (zh) | 数据库访问控制方法和装置 | |
CN115729687A (zh) | 任务调度方法、装置、计算机设备、存储介质 | |
EP3407196B1 (en) | Preventing reader starvation during order preserving data stream consumption | |
CN108595251B (zh) | 动态图更新方法、装置、存储引擎接口和程序介质 | |
CN113157426A (zh) | 一种任务调度方法、系统、设备及存储介质 | |
CN111555987B (zh) | 限流配置方法、装置、设备及计算机存储介质 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
US20090320036A1 (en) | File System Object Node Management | |
CN114546705A (zh) | 操作响应方法、操作响应装置、电子设备以及存储介质 | |
CN110659312B (zh) | 数据处理的方法、装置、设备和计算机存储介质 | |
CN109062707B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN114968505A (zh) | 任务处理系统、方法、装置、设备、存储介质及程序产品 | |
US12026540B2 (en) | Working memory management | |
CN118626234B (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 |