CN110162344B - 一种隔离限流的方法、装置、计算机设备及可读存储介质 - Google Patents
一种隔离限流的方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN110162344B CN110162344B CN201910301150.9A CN201910301150A CN110162344B CN 110162344 B CN110162344 B CN 110162344B CN 201910301150 A CN201910301150 A CN 201910301150A CN 110162344 B CN110162344 B CN 110162344B
- Authority
- CN
- China
- Prior art keywords
- annotation
- isolation
- current limiting
- configuration items
- initial parameter
- 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.)
- Active
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种隔离限流的方法体,该方法体包括:在业务系统框架中查找添加有预设的隔离限流注解的方法体;从所述隔离限流注解中获取关键配置项的参数值,从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,并从查找到的初始参数组中获取除了所述关键配置项之外的其他配置项的初始参数值;根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解;根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理。本发明降低了使用Hystrix的技术门槛,且可对已配置的参数值进行修改,提高使用体验度。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种隔离限流的方法、装置、计算机设备及可读存储介质。
背景技术
在分布式环境下,业务系统通常会有很多依赖(例如:各种第三方接口调用),在高并发访问下,这些依赖可能会有很多不可控问题,例如:网络连接缓慢、资源繁忙、暂时不可用等;当依赖阻塞时,就会对整个业务系统造成很大影响;Hystrix组件即是一个有关延迟和失败容错的开源库包,可以提供对依赖的隔离、限流、熔断功能,从而对高并发环境下的服务进行一定的保护,降低业务系统被拖垮的风险。但是,在使用Hystrix组件时,需要开发人员进行一系列的配置项的参数设置,这就需要开发人员对Hystrix组件有一定的了解;此外,当配置项的参数值设置完成之后,不能对已设置的参数值进行修改,具有一定的局限性。
发明内容
本发明的目的在于提供一种隔离限流的方法、装置、计算机设备及可读存储介质,降低了使用Hystrix的技术门槛,且可对已配置的参数值进行修改,提高使用体验度。
本发明是通过下述技术方案来解决上述技术问题:
根据本发明的一个方面,提供了一种隔离限流的方法,包括如下步骤:
在业务系统框架中查找添加有预设的隔离限流注解的方法体;
从所述隔离限流注解中获取关键配置项的参数值,从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,并从查找到的初始参数组中获取除了所述关键配置项之外的其他配置项的初始参数值;
根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解;
根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理。
进一步的,所述隔离限流注解是添加在需要具有隔离限流功能的方法体上的注解;所述关键配置项是包含在所述隔离限流注解中的配置项。
进一步的,所述后台管理平台存储有分别与各个业务系统框架对应的初始参数组;其中,每个初始参数组包括Hystrix组件所需要的各个配置项的初始参数值;
所述从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,具体包括:
根据所述业务系统框架的配置文件,从所述后台管理平台中查找与所述业务系统框架对应的初始参数值。
进一步的,所述根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解,具体包括:
获取预设的@HystrixCommand注解模板;其中,所述注解模板仅包括Hystrix组件所需要的各个配置项;
将所述隔离限流注解中的关键配置项的参数值,对应的添加到所述注解模板中;
将从所述后台管理平台中获取的其他配置项的初始参数值,对应的添加到所述注解模板中。
进一步的,所述根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理,具体包括:
根据所述隔离限流注解中的配置项的类型,确定出与所述隔离限流注解对应的隔离限流方式;其中,所述隔离限流方式包括:信号量隔离方式、线程池隔离方式、熔断方式;
根据确定出的隔离限流方式,对所述方法体进行隔离限流处理。
进一步的,所述方法还包括:
接收初始参数修改指令,并根据所述初始参数修改指令在所述后台管理平台中修改对应业务系统框架中的对应配置项的初始参数值。
为了实现上述目的,本发明还提供一种隔离限流的装置,具体包括:
查找模块,用于在业务系统框架中查找添加有预设的隔离限流注解的方法体;
获取模块,用于从所述隔离限流注解中获取关键配置项的参数值,从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,并从查找到的初始参数组中获取除了所述关键配置项之外的其他配置项的初始参数值;
构建模块,用于根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解;
处理模块,用于根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理。
进一步的,所述装置还包括:
修改模块,用于接收初始参数修改指令,并根据所述初始参数修改指令在所述后台管理平台中修改对应业务系统框架中的对应配置项的初始参数值。
为了实现上述目的,本发明还提供一种计算机设备,具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述方法的步骤。
本发明提供的隔离限流的方法、装置、计算机设备及可读存储介质,由于在自定义的隔离限流注解中只需要添加关键配置项的参数值,方便业务快速接入隔离限流功能,降低了使用Hystrix组件的技术门槛;在本发明中对原有的Hystrix组件中复杂的配置项进行封装,自定义新的隔离限流注解,且在隔离限流注解中只需设置关键配置项的参数值,而无需对其他配置项的参数值进行设置,减少了开发人员的工作量,易于开发人员使用Hystrix组件。此外,在现有技术中,存在无法修改已设置的配置项的参数值的技术问题,而在本发明中,可以通过预设的后台管理平台,针对性的修改配置项的参数值。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为实施例一提供的隔离限流的方法的一种可选的流程示意图;
图2为实施例二提供的隔离限流的装置的一种可选的程序模块示意图;
图3为实施例三提供的计算机设备的一种可选的硬件架构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
下面结合附图对本发明提供的隔离限流的方法进行说明。
图1为本发明隔离限流的方法的一种可选的流程示意图,如图1所示,该方法可以包括以下步骤:
步骤S101:在业务系统框架中查找添加有预设的隔离限流注解的方法体。
其中,所述业务系统框架为可实现多个功能的业务的系统框架,在所述业务系统框架中包括与各个功能对应的方法体,通过执行每个方法体可以实现对应的功能;在本实施例中,在包含有多个方法体的业务系统框架中查找添加了预设的隔离限流注解的方法体。
所述隔离限流注解是添加在需要具有隔离限流功能的方法体上的注解,所述隔离限流注解是对Hystrix组件的@HystrixCommand注解的封装。由于在一个业务系统框架中会有多个与各个功能对应的方法体,且当业务系统处于高并发访问下,容易出现方法体不能被执行的问题,对整个业务系统造成很大的影响,所以需要对业务系统框架中的方法体进行隔离限流,从而对高并发环境下的业务系统进行一定的保护,降低业务系统被拖垮的风险。因此,开发人员在构建业务系统框架时,会在每个方法体上引入预设的隔离限流注解,以通过预设的隔离限流注解实现对各个方法体进行隔离限流的效果。
Hystrix组件提供了熔断、隔离、限流等功能,能够在一个或多个方法体同时出现问题时保证业务系统依然可用;在现有技术中,如果要使用Hystrix组件,需要在具有隔离限流功能的方法体上添加@HystrixCommand注解,然而在@HystrixCommand注解中,需要开发人员在代码中对Hystrix组件所需要的所有配置项进行参数设置,例如:超时时间、熔断阈值、最大允许线程数;因此,需要开发人员理解Hystrix组件中的每个配置项的含义和用途,需要开发人员花费大量时间了解Hystrix组件的运行机制和配置项所适用的场景;而在本实施例中,使用简化后的隔离限流注解来替代复杂的@HystrixCommand注解,在隔离限流注解中开发人员只需要对特别关注的配置项进行参数设置,而其他配置项的参数值则使用默认值。
注解是一个方法体的扩展模板,方法体可以按照注解中的规则实现相应的功能。在本实施例中,如果某个方法体需要使用Hystrix组件只需要开发人员在该方法体中调用自定义的隔离限流注解,并在隔离限流注解中设置关键配置项的参数值即可。
还需要说明的是,在本实施例中,仅能在类型为public的方法体上添加自定义的隔离限流注解。
步骤S102:从所述隔离限流注解中获取关键配置项的参数值,从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,并从查找到的初始参数组中获取除了所述关键配置项之外的其他配置项的初始参数值。
其中,所述关键配置项是包含在所述隔离限流注解中的配置项;
所述后台管理平台存储有分别与各个业务系统框架对应的初始参数组;
每个初始参数组包括Hystrix组件所需要的各个配置项的初始参数值。
在本实施例中,在隔离限流注解中,开发人员只需要对关键配置项进行参数值的设置,而Hystrix组件所需要的其他配置项的参数值则从后台管理平台中获取;在后台管理平台中存储有不同类型的业务系统框架的初始参数组,且在每个初始参数组中包括Hystrix组件所需要的各个配置项的初始参数值;由于各个业务系统之间会存在一定的差异,所以不同业务系统的同一个配置项的参数值可能存在差异,因此,开发人员会根据业务需求和历史经验值,在后台管理平台中为每个业务系统的各个配置项分别设置初始参数值。
例如,若隔离限流的注解中包含关键配置项maxRequest(最大并发量)和timeout(超时时间)的参数值,则需要从后台管理平台中的对应的初始参数组中获取除了maxRequest(最大并发量)和timeout(超时时间)之外的其他配置项的初始参数值。
具体的,所述从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,具体包括:
根据所述业务系统框架的配置文件,从所述后台管理平台中查找与所述业务系统框架对应的初始参数值。
步骤S103:根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解。
具体的,步骤S103,包括:
获取预设的@HystrixCommand注解模板;其中,所述注解模板仅包括Hystrix组件所需要的各个配置项;
将所述隔离限流注解中的关键配置项的参数值,对应的添加到所述注解模板中;
将从所述后台管理平台中获取的其他配置项的初始参数值,对应的添加到所述注解模板中。
由于@HystrixCommand注解的代码格式固定,在使用时需要开发人员对各个配置项进行参数设置,所以在本实施例中,可以根据隔离限流注解中的关键配置项的参数值以及从后台管理平台获取到的其他配置项的初始参数值,按照@HystrixCommand注解的代码格式,自动生成@HystrixCommand注解,从而实现Hystrix组件的隔离限流功能。
步骤S104:根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理。
具体的,步骤S104,包括:
根据所述隔离限流注解中的配置项的类型,确定出与所述隔离限流注解对应的隔离限流方式;其中,所述隔离限流方式包括:信号量隔离方式、线程池隔离方式、熔断方式;
根据确定出的隔离限流方式,对所述方法体进行隔离限流处理。
进一步的,所述根据所述隔离限流注解中的配置项的类型,确定出与所述隔离限流注解对应的隔离限流方式,包括:
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback时,所述隔离限流注解所对应的隔离限流方式为信号量隔离方式;
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback、隔离策略isolationStgy时,所述隔离限流注解所对应的隔离限流方式为线程池隔离方式;
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback、请求阈值requestThreshold、失败阈值errorThreshold时,所述隔离限流注解所对应的隔离限流方式为熔断方式。
例如,当使用@Phystrix注解作为隔离限流注解时;当所述@Phystrix注解所对应的隔离限流方式为信号量隔离方式时,@Phystrix注解的示例如下:
@Phystrix(commandKey="getProfile",commandGroup="getProfile",fallBack="fail",maxRequest=50,timeout=2000)
publicProfileDOgetUserProfile(String userId){
//TODO
}
其中,commandKey的值与方法体名一致;commandGroup的值与方法体所属的类的类名一致;fallBack的值反映出采用的服务降级方式,参数值与原方法体保持一致,通常需要配置,方法体中主要是快速失败返回或告警的内容,一般不涉及业务逻辑;
maxRequest为允许的最大并发量,timeout为超时时间;在该示例中,maxRequest和timeout是关键配置项;在后台管理平台中maxRequest的默认值为500、timeout的默认值为1000ms;但是在该示例中,开发人员将maxRequest的参数值设置为50、将timeout的参数值设置为2000ms。
又例如,当所述@Phystrix注解所对应的隔离限流方式为线程池隔离方式时,@Phystrix注解的示例如下:
其中,当采用线程池隔离方式时,需要在@Phystrix注解中添加配置项“isolationStgy”;如果在@Phystrix注解中不存在配置项“isolationStgy”,则采用信号量隔离方式。
timeout为超时时间、threadPoolSize为线程池大小;在该示例中,timeout和threadPoolSize为关键配置项。
在本实施例中,依赖hystrix-core,使用spring AOP以自定义的隔离限流注解作为切点,在添加了隔离限流注解的方法体调用过程中,构建@HystrixCommand对象,并在构建的@HystrixCommand对象中使用隔离限流注解中的关键配置项的参数值,而其他配置项的参数值使用后台管理平台中存储的初始参数值。本方案是根据隔离限流注解构建@HystrixCommand注解;因此,添加了隔离限流注解的方法体就能调用Hystrix组件,就拥有了隔离限流的功能。
更进一步的,所述方法还包括:
接收初始参数修改指令,并根据所述初始参数修改指令在所述后台管理平台中修改对应业务系统框架中的对应配置项的初始参数值。
在现有技术中,当@HystrixCommand注解构建完成之后,不能对其中的配置项的参数值进行修改,如果要修改配置项的参数值,需要重新构建@HystrixCommand注解;而在本实施例中,开发人员可以通过后台管理平台对配置项的初始参数值进行修改。
在本实施例中,开发人员只需要在需要具有隔离限流功能的方法体上添加自定义的隔离限流注解,即可执行对应隔离限流的处理逻辑;在引用隔离限流注解时,如果开发人员不在隔离限流注解中对关键配置项进行参数设置,则使用后台管理平台中的各个配置项的初始参数值;如果开发人员在隔离限流注解中对关键配置项进行参数设置,则使用隔离限流注解中的参数值。
实施例二
基于上述实施例一中提供的隔离限流的方法,本实施例中提供一种隔离限流的装置,具体地,图2示出了该隔离限流的装置的可选的结构框图,该隔离限流的装置被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述隔离限流的装置在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图2所示,该隔离限流的装置具体包括以下组成部分:
查找模块201,用于在业务系统框架中查找添加有预设的隔离限流注解的方法体。
其中,所述隔离限流注解是添加在需要具有隔离限流功能的方法体上的注解,所述隔离限流注解是对Hystrix组件的@HystrixCommand注解的封装。
还需要说明的是,在本实施例中,仅能在类型为public的方法体上添加自定义的隔离限流注解。
获取模块202,用于从所述隔离限流注解中获取关键配置项的参数值,从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,并从查找到的初始参数组中获取除了所述关键配置项之外的其他配置项的初始参数值。
其中,所述关键配置项是包含在所述隔离限流注解中的配置项;
所述后台管理平台存储有分别与各个业务系统框架对应的初始参数组;
每个初始参数组包括Hystrix组件所需要的各个配置项的初始参数值。
具体的,获取模块202,用于:
根据所述业务系统框架的配置文件,从所述后台管理平台中查找与所述业务系统框架对应的初始参数值。
构建模块203,用于根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解。
具体的,构建模块203,用于:
获取预设的@HystrixCommand注解模板;其中,所述注解模板仅包括Hystrix组件所需要的各个配置项;将所述隔离限流注解中的关键配置项的参数值,对应的添加到所述注解模板中;将从所述后台管理平台中获取的其他配置项的初始参数值,对应的添加到所述注解模板中。
处理模块204,用于根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理。
具体的,处理模块204,包括:
确定单元,用于根据所述隔离限流注解中的配置项的类型,确定出与所述隔离限流注解对应的隔离限流方式;其中,所述隔离限流方式包括:信号量隔离方式、线程池隔离方式、熔断方式;
处理单元,用于根据确定出的隔离限流方式,对所述方法体进行隔离限流处理。
进一步的,确定单元,具体用于:
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback时,所述隔离限流注解所对应的隔离限流方式为信号量隔离方式;
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback、隔离策略isolationStgy时,所述隔离限流注解所对应的隔离限流方式为线程池隔离方式;
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback、请求阈值requestThreshold、失败阈值errorThreshold时,所述隔离限流注解所对应的隔离限流方式为熔断方式。
更进一步的,所述装置还包括:
修改模块,用于接收初始参数修改指令,并根据所述初始参数修改指令在所述后台管理平台中修改对应业务系统框架中的对应配置项的初始参数值。
在现有技术中,当@HystrixCommand注解构建完成之后,不能对其中的配置项的参数值进行修改,如果要修改配置项的参数值,需要重新构建@HystrixCommand注解;而在本实施例中,开发人员可以通过后台管理平台对配置项的初始参数值进行修改。
实施例三
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,本实施例的计算机设备30至少包括但不限于:可通过系统总线相互通信连接的存储器301、处理器302。需要指出的是,图3仅示出了具有组件301-302的计算机设备30,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器301(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器301可以是计算机设备30的内部存储单元,例如该计算机设备30的硬盘或内存。在另一些实施例中,存储器301也可以是计算机设备30的外部存储设备,例如该计算机设备30上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器301还可以既包括计算机设备30的内部存储单元也包括其外部存储设备。在本实施例中,存储器301通常用于存储安装于计算机设备30的操作系统和各类应用软件,例如实施例二的隔离限流的装置的程序代码等。此外,存储器301还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器302在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器302通常用于控制计算机设备30的总体操作。
具体的,在本实施例中,处理器302用于执行处理器302中存储的隔离限流的方法的程序,所述隔离限流的方法的程序被执行时实现如下步骤:
在业务系统框架中查找添加有预设的隔离限流注解的方法体;
从所述隔离限流注解中获取关键配置项的参数值,从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,并从查找到的初始参数组中获取除了所述关键配置项之外的其他配置项的初始参数值;
根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解;
根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理。
上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
在业务系统框架中查找添加有预设的隔离限流注解的方法体;
从所述隔离限流注解中获取关键配置项的参数值,从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,并从查找到的初始参数组中获取除了所述关键配置项之外的其他配置项的初始参数值;
根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解;
根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理。
上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种隔离限流的方法,其特征在于,所述方法包括:
在业务系统框架中查找添加有预设的隔离限流注解的方法体;
从所述隔离限流注解中获取关键配置项的参数值,从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,并从查找到的初始参数组中获取除了所述关键配置项之外的其他配置项的初始参数值;
根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解;
根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理;
具体的,所述根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理,包括:
根据所述隔离限流注解中的关键配置项的类型,确定出与所述隔离限流注解对应的隔离限流方式;其中,所述隔离限流方式包括:信号量隔离方式、线程池隔离方式、熔断方式;
根据确定出的隔离限流方式,对所述方法体进行隔离限流处理;
其中,当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback时,所述隔离限流注解所对应的隔离限流方式为信号量隔离方式;
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback、隔离策略isolationStgy时,所述隔离限流注解所对应的隔离限流方式为线程池隔离方式;
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback、请求阈值requestThreshold、失败阈值errorThreshold时,所述隔离限流注解所对应的隔离限流方式为熔断方式。
2.根据权利要求1所述的隔离限流的方法,其特征在于,所述隔离限流注解是添加在需要具有隔离限流功能的方法体上的注解;所述关键配置项是包含在所述隔离限流注解中的配置项。
3.根据权利要求2所述的隔离限流的方法,其特征在于,所述后台管理平台存储有分别与各个业务系统框架对应的初始参数组;其中,每个初始参数组包括Hystrix组件所需要的各个配置项的初始参数值;
所述从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,具体包括:
根据所述业务系统框架的配置文件,从所述后台管理平台中查找与所述业务系统框架对应的初始参数值。
4.根据权利要求3所述的隔离限流的方法,其特征在于,所述根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解,具体包括:
获取预设的@HystrixCommand注解模板;其中,所述注解模板仅包括Hystrix组件所需要的各个配置项;
将所述隔离限流注解中的关键配置项的参数值,对应的添加到所述注解模板中;
将从所述后台管理平台中获取的其他配置项的初始参数值,对应的添加到所述注解模板中。
5.根据权利要求1~4中任一项所述的隔离限流的方法,其特征在于,所述方法还包括:
接收初始参数修改指令,并根据所述初始参数修改指令在所述后台管理平台中修改对应业务系统框架中的对应配置项的初始参数值。
6.一种隔离限流的装置,其特征在于,所述装置包括:
查找模块,用于在业务系统框架中查找添加有预设的隔离限流注解的方法体;
获取模块,用于从所述隔离限流注解中获取关键配置项的参数值,从预设的后台管理平台中查找与所述业务系统框架对应的初始参数组,并从查找到的初始参数组中获取除了所述关键配置项之外的其他配置项的初始参数值;
构建模块,用于根据所述隔离限流注解中的关键配置项的参数值以及从所述后台管理平台中获取的其他配置项的初始参数值,构建出Hystrix组件的@HystrixCommand注解;
处理模块,用于根据构建出的@HystrixCommand注解对所述方法体进行隔离限流处理;
具体的,处理模块,包括:
确定单元,用于根据所述隔离限流注解中的关键配置项的类型,确定出与所述隔离限流注解对应的隔离限流方式;其中,所述隔离限流方式包括:信号量隔离方式、线程池隔离方式、熔断方式;
处理单元,用于根据确定出的隔离限流方式,对所述方法体进行隔离限流处理;
进一步的,确定单元,具体用于:
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback时,所述隔离限流注解所对应的隔离限流方式为信号量隔离方式;
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback、隔离策略isolationStgy时,所述隔离限流注解所对应的隔离限流方式为线程池隔离方式;
当所述隔离限流注解中的关键配置项的类型为:命令名commandKey、命令所属组名commandGroup、服务降级方法fallback、请求阈值requestThreshold、失败阈值errorThreshold时,所述隔离限流注解所对应的隔离限流方式为熔断方式。
7.根据权利要求6所述的隔离限流的装置,其特征在于,所述装置还包括:
修改模块,用于接收初始参数修改指令,并根据所述初始参数修改指令在所述后台管理平台中修改对应业务系统框架中的对应配置项的初始参数值。
8.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910301150.9A CN110162344B (zh) | 2019-04-15 | 2019-04-15 | 一种隔离限流的方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910301150.9A CN110162344B (zh) | 2019-04-15 | 2019-04-15 | 一种隔离限流的方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162344A CN110162344A (zh) | 2019-08-23 |
CN110162344B true CN110162344B (zh) | 2023-03-31 |
Family
ID=67639482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910301150.9A Active CN110162344B (zh) | 2019-04-15 | 2019-04-15 | 一种隔离限流的方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162344B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727477B (zh) * | 2019-10-12 | 2023-03-24 | 未鲲(上海)科技服务有限公司 | 组件加载方法、装置、计算机设备和存储介质 |
CN111709050A (zh) * | 2020-05-21 | 2020-09-25 | 四川虹美智能科技有限公司 | 初始化权限配置参数的方法及装置 |
CN113110887B (zh) * | 2021-03-31 | 2023-07-21 | 联想(北京)有限公司 | 一种信息处理方法、装置、电子设备和存储介质 |
CN114979137A (zh) * | 2022-04-28 | 2022-08-30 | 中国电力科学研究院有限公司 | 一种用于电力行业高并发处理的方法、系统、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951694A (zh) * | 2014-03-24 | 2015-09-30 | 华为技术有限公司 | 一种管理虚拟机的隔离方法及装置 |
CN108009075A (zh) * | 2017-11-27 | 2018-05-08 | 南京联创信息科技有限公司 | 基于Hystrix框架的动态熔断判断方法 |
CN109587272A (zh) * | 2018-12-30 | 2019-04-05 | 深圳云天励飞技术有限公司 | 一种微服务的优化方法、装置和电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301098B (zh) * | 2017-06-15 | 2020-09-08 | 搜易贷(北京)金融信息服务有限公司 | 一种基于Thrift协议的远程过程调用装置、方法及系统 |
CN108446111A (zh) * | 2018-03-26 | 2018-08-24 | 国家电网公司客户服务中心 | 一种基于Spring cloud的微服务构建方法 |
-
2019
- 2019-04-15 CN CN201910301150.9A patent/CN110162344B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951694A (zh) * | 2014-03-24 | 2015-09-30 | 华为技术有限公司 | 一种管理虚拟机的隔离方法及装置 |
CN108009075A (zh) * | 2017-11-27 | 2018-05-08 | 南京联创信息科技有限公司 | 基于Hystrix框架的动态熔断判断方法 |
CN109587272A (zh) * | 2018-12-30 | 2019-04-05 | 深圳云天励飞技术有限公司 | 一种微服务的优化方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110162344A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958714B (zh) | 业务组件式开发方法、装置、计算机设备及存储介质 | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN107016480B (zh) | 任务调度方法、装置及系统 | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
CN109684057A (zh) | 任务处理方法、装置和存储介质 | |
CN107368353B (zh) | 一种实现虚拟机内存热添加的方法和装置 | |
CN107341054B (zh) | 任务执行方法、装置及计算机可读存储介质 | |
CN110609755A (zh) | 跨区块链节点的消息处理方法及装置、设备、介质 | |
CN110908644B (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN108614697B (zh) | 后台Dex编译管控的方法及装置 | |
CN112148351A (zh) | 一种应用软件跨版本兼容的方法和系统 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN116450165A (zh) | 一种快速搭建环境及部署程序的方法、系统、终端及存储介质 | |
CN111198689B (zh) | 一种代码执行方法、装置及计算机可读存储介质 | |
CN116541035A (zh) | 容器编排引擎的升级方法、系统、设备及介质 | |
CN116302328A (zh) | 智能合约数据处理方法和系统 | |
CN112130900B (zh) | 一种bmc的用户信息管理方法、系统、设备以及介质 | |
CN115712524A (zh) | 数据恢复方法及装置 | |
CN110599112A (zh) | 一种网络页面开发、维护方法和装置 | |
CN114595047A (zh) | 一种批量任务处理方法和装置 | |
CN116263717A (zh) | 基于事件的订单业务处理方法及装置 | |
CN113032118A (zh) | 用于计算机应用程序的异步操作处理方法和相应的系统 | |
US11017032B1 (en) | Document recovery utilizing serialized data | |
CN113886215A (zh) | 接口测试方法、装置及存储介质 | |
CN111400058A (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 |