本发明专利技术公开了一种分布式系统服务组件隔离限流防雪崩的方法及装置,其中,该方法包括,在系统有服务业务接入时,获取客户端发送的异步请求;利用容器线程池的容器线程对异步请求进行转换,得到上下文对象;在上下文对象投放至对应的业务线程池后,释放返回容器线程,以及利用业务线程池的业务线程调用业务组件层中对应的服务组件,并异步执行业务服务操作得到响应结果;将响应结果通过容器线程返回至客户端。本发明专利技术的技术方案能够有效的实现服务调用隔离,能够防止某一服务组件出现故障时影响到其他正常的服务组件调用,从而避免系统发生雪崩事件,大大提高了系统的性能、高可用和稳定性。
A method and device to isolate current limiting and prevent avalanche for distributed system service components
【技术实现步骤摘要】
一种分布式系统服务组件隔离限流防雪崩的方法及装置
本专利技术涉及一种数据处理
,尤其涉及一种分布式系统服务组件隔离限流防雪崩的方法及装置。
技术介绍
目前,随着互联网技术的迅速发展,越来越多的业务实现了服务线上化。为满足服务业务功能的增加要求,现有技术中的运行系统的设计也越来越复杂。为了应对高并发的用户请求访问,现有的运行系统可以采用分布式的服务组件架构设计。利用分布式的服务组件机构设计,如何保证系统的高可用行,避免服务组件之间的相互影响,解决某个业务组件发生故障时引起整个业务系统瘫痪产生雪崩事件,成为分布式系统必须要考虑解决的问题。有鉴于此,有必要提出对目前的分布式的服务组件架构设计方法进行进一步的改进。
技术实现思路
为解决上述至少一技术问题,本专利技术的主要目的是提供一种分布式系统服务组件隔离限流防雪崩的方法及装置。为实现上述目的,本专利技术采用的一个技术方案为:提供一种分布式系统服务组件隔离限流防雪崩的方法,所述分布式系统设有服务接入层及业务组件层,所述服务接入层设有容器线程池,及与容器线程池分别相连的多个业务线程池,所述分布式系统中服务组件隔离限流防雪崩的方法包括:在系统有服务业务接入时,获取客户端发送的异步请求;利用容器线程池的容器线程对异步请求进行转换,得到上下文对象;在上下文对象投放至对应的业务线程池后,释放返回容器线程,以及利用业务线程池的业务线程调用业务组件层中对应的服务组件,并异步执行业务服务操作得到响应结果;将响应结果通过容器线程返回至客户端。其中,所述利用业务线程池的业务线程调用业务组件层中对应的服务组件中,还包括:预设请求调用异常的数目阈值;统计请求调用异常的数量,并在请求调用异常的数量处于数目阈值内,继续调用业务组件层中对应的服务组件。其中,所述统计请求调用异常的数量,还包括:在请求调用异常的数量超出数目阈值时,直接返回调用失败的信息。其中,所述上下文对象包括请求对象及响应对象,所述利用业务线程池的业务线程调用业务组件层中对应的服务组件,并异步执行业务服务操作得到响应结果,具体包括:利用业务线程池的业务线程调用与请求对象对应业务组件层中的服务组件;根据响应对象异步执行业务服务操作得到响应结果。其中,所述利用容器线程池的容器线程对异步请求进行解析,得到解析后的上下文对象之后,还包括:对转换请求进行权限认证。为实现上述目的,本专利技术采用的另一个技术方案为:提供一种分布式系统服务组件隔离限流防雪崩的装置,所述分布式系统设有服务接入层及业务组件层,所述服务接入层设有容器线程池,及与容器线程池分别相连的多个业务线程池,所述分布式系统中服务组件隔离限流防雪崩的装置包括:获取模块,用于在系统有服务业务接入时,获取客户端发送的异步请求;转换模块,用于利用容器线程池的容器线程对异步请求进行转换,得到上下文对象;调用处理模块,用于在上下文对象投放至对应的业务线程池后,释放返回容器线程,以及利用业务线程池的业务线程调用业务组件层中对应的服务组件,并异步执行业务服务操作得到响应结果;返回模块,用于将响应结果通过容器线程返回至客户端。其中,所述调用处理模块还用于:预设请求调用异常的数目阈值;统计请求调用异常的数量,并在请求调用异常的数量处于数目阈值内,继续调用业务组件层中对应的服务组件。其中,所述调用处理模块还用于:在请求调用异常的数量超出数目阈值时,直接返回调用失败的信息。其中,所述上下文对象包括请求对象及响应对象,所述调用处理模块,还用于:利用业务线程池的业务线程调用与请求对象对应业务组件层中的服务组件;根据响应对象异步执行业务服务操作得到响应结果。其中,还包括认证模块,用于对转换请求进行权限认证。本专利技术的技术方案采用在系统有服务业务接入时,先获取客户端发送的异步请求;然后利用容器线程池的容器线程对异步请求进行转换,得到上下文对象;在上下文对象投放至对应的业务线程池后,直接释放返回容器线程,以及利用业务线程池的业务线程调用业务组件层中对应的服务组件,并异步执行业务服务操作得到响应结果;最后将响应结果通过容器线程返回至客户端。通过将容器线程及业务线程分开,能够快速释放容器线程;另外,不同的业务可以在接入服务层产生不同的业务线程池,根据客户端不同业务的请求投递至对应的业务线程池中处理,能够有效的实现服务调用隔离,能够防止某一服务组件出现故障时影响到其他正常的服务组件调用,从而避免系统发生雪崩事件。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1为本专利技术一实施例分布式系统服务组件隔离限流防雪崩的方法流程图;图2为本专利技术分布式系统服务组件调用处理的流程图;图3为本专利技术一实施例分布式系统服务组件隔离限流防雪崩的装置的模块方框图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明,本专利技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内。在传统分布式系统架构中服务接入层组件容器中会开启容器线程池,客户端的一次请求连接调用会占用接入层组件容器线程池中的一个线程,该业务请求调用完成后,会释放线程到线程池供下个请求连接使用,客户并发请求和接入层组件容器线程的占用是1:1,超过接入层组件容器最大线程数就会引起整个系统的阻塞,这样就会带来一个问题,如果服务组件A发生异常导致调用超时,就会引起服务组件A占用的线程不能够被快速回收,时间一长就会产生连锁反应,影响到其他正常业务服务组件B的调用,最终会导致整个系统发生雪崩事件,引起系统瘫痪。为此,本方案提供了一种分布式系统服务组件隔离限流防雪崩的方法及装置。请参照图1,图1为本专利技术一实施例分布式系统服务组件隔离限流防雪崩的方法流程图。在本专利技术实施例中,该分布式系统服务组件隔离限流防雪崩的方法,所述本文档来自技高网...
【技术保护点】
1.一种分布式系统服务组件隔离限流防雪崩的方法,所述分布式系统设有服务接入层及业务组件层,其特征在于,所述服务接入层设有容器线程池,及与容器线程池分别相连的多个业务线程池,所述分布式系统中服务组件隔离限流防雪崩的方法包括:/n在系统有服务业务接入时,获取客户端发送的异步请求;/n利用容器线程池的容器线程对异步请求进行转换,得到上下文对象;/n在上下文对象投放至对应的业务线程池后,释放返回容器线程,以及利用业务线程池的业务线程调用业务组件层中对应的服务组件,并异步执行业务服务操作得到响应结果;/n将响应结果通过容器线程返回至客户端。/n
【技术特征摘要】
1.一种分布式系统服务组件隔离限流防雪崩的方法,所述分布式系统设有服务接入层及业务组件层,其特征在于,所述服务接入层设有容器线程池,及与容器线程池分别相连的多个业务线程池,所述分布式系统中服务组件隔离限流防雪崩的方法包括:
在系统有服务业务接入时,获取客户端发送的异步请求;
利用容器线程池的容器线程对异步请求进行转换,得到上下文对象;
在上下文对象投放至对应的业务线程池后,释放返回容器线程,以及利用业务线程池的业务线程调用业务组件层中对应的服务组件,并异步执行业务服务操作得到响应结果;
将响应结果通过容器线程返回至客户端。
2.如权利要求1所述的分布式系统服务组件隔离限流防雪崩的方法,其特征在于,所述利用业务线程池的业务线程调用业务组件层中对应的服务组件中,还包括:
预设请求调用异常的数目阈值;
统计请求调用异常的数量,并在请求调用异常的数量处于数目阈值内,继续调用业务组件层中对应的服务组件。
3.如权利要求2所述的分布式系统服务组件隔离限流防雪崩的方法,其特征在于,所述统计请求调用异常的数量,还包括:
在请求调用异常的数量超出数目阈值时,直接返回调用失败的信息。
4.如权利要求1所述的分布式系统服务组件隔离限流防雪崩的方法,其特征在于,所述上下文对象包括请求对象及响应对象,
所述利用业务线程池的业务线程调用业务组件层中对应的服务组件,并异步执行业务服务操作得到响应结果,具体包括:
利用业务线程池的业务线程调用与请求对象对应业务组件层中的服务组件;
根据响应对象异步执行业务服务操作得到响应结果。
5.如权利要求1所述的分布式系统服务组件隔离限流防雪崩的方法,其特征在于,所述利用容器线程池的容器线程对异步请求进行解析,得到解...
【专利技术属性】
技术研发人员:刘宝,
申请(专利权)人:深圳市思迪信息技术股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。