服务限流方法及装置制造方法及图纸

技术编号:24763661 阅读:16 留言:0更新日期:2020-07-04 11:00
本发明专利技术提供了一种服务限流方法及装置,方法包括:接收用户设置的限流策略;将所述限流策略下发至各服务的节点服务器的探针;利用所述探针根据所述限流策略进行限流。本发明专利技术解决了分布式微服务中节点间的限流问题,本发明专利技术对应用程序是无侵入的,应用程序对本装置是无感知的。并且,传统限流中间件只能对目标应用做到接口级别的限流能力,并且限流算法单一,可变性不多,而本发明专利技术的方案能对目标应用做到方法级的限流能力,增加限流功能的精确性。

Service current limiting method and device

【技术实现步骤摘要】
服务限流方法及装置
本专利技术涉及数据处理技术,具体的讲是一种服务限流方法及装置。
技术介绍
随着分布式微服务的流行,安全可靠的内部服务间的限流熔断功能变的越来越重要,传统的限流熔断有两种方式,一种是从服务接入的网关或负载均衡处限流,另一种是微服务中相关框架中或程序中植入限流熔断功能。从服务接入的网关或负载均衡处限流,这种限流方式控制颗粒度比较粗,无法对微服务内部集群中每个服务之间做到限流,或者无法对内部集群中每个接口调用之间做到精准限流。在微服务中相关框架中或程序中植入限流熔断功能,这种方式对业务程序有强耦合性,不适合后期限流功能的升级。
技术实现思路
为至少解决现有技术的一问题,本专利技术实施例提供了一种服务限流方法,该方法包括:接收用户设置的限流策略;将所述限流策略下发至各服务的节点服务器的探针;利用所述探针根据所述限流策略进行限流。本专利技术实施例中,所述的接收用户设置的限流策略包括:通过探针向远程控制台发送心跳建立连接;建立连接后,接收用户通过所述远程控制台设置的限流策略。本专利技术实施例中,所述的服务节点服务器设置于Java虚拟机环境。本专利技术实施例中,所述的将所述限流策略下发至各服务的节点服务器的探针之前包括:预先在各服务的节点服务器分别设置探针.本专利技术实施例中,所述的探针为Java探针。同时,本专利技术还提供一种服务限流装置,包括:策略接收模块,用于接收用户设置的限流策略;下发模块,用于将所述限流策略下发至各服务的节点服务器的探针;限流模块,用于利用所述探针根据所述限流策略进行限流。本专利技术实施例中,所述的策略接收模块包括:连接建立单元,用于通过探针向远程控制台发送心跳建立连接;接收单元,建立连接后,用于接收用户通过所述远程控制台设置的限流策略。本专利技术实施例中,所述的装置还包括:探针设置模块,用于预先在各服务节点服务器分别设置探针.本专利技术实施例中,所述的限流策略包括:对服务的访问截断策略、适配器策略以及流量规划控制策略。同时,本专利技术还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法。同时,本专利技术还提供一种计算机可读存储介质,计算机可读存储介质存储有执行上述方法的计算机程序。本专利技术提供的服务限流方法及装置,解决了分布式微服务中节点间的限流问题,解决了现有技术中的限流装置,对于传统分布式微服务节点限流装置来说,需对应用程序有侵入性,需应用程序集成相关限流能力的sdk或者框架能力,而本专利技术对应用程序是无侵入的,应用程序对本装置是无感知的。并且,传统限流中间件只能对目标应用做到接口级别的限流能力,并且限流算法单一,可变性不多,而本专利技术的方案能对目标应用做到方法级的限流能力,增加限流功能的精确性。为让本专利技术的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的服务限流方法的流程图;图2为本专利技术提供的服务限流装置的框图;图3为本专利技术实施例中探针整体架构;图4为本专利技术实施例中实现服务限流都整体架构图;图5为本专利技术实施例中应用程序和探针模块联动方式示意图;图6为本专利技术实施例中电子设备示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术提供的一种服务限流方法的流程图,该方法包括:步骤S101,接收用户设置的限流策略;步骤S102,将所述限流策略下发至各服务的节点服务器的探针;步骤S103,利用所述探针根据所述限流策略进行限流。本专利技术运用探针技术,在应用节点服务器中内置探针,探针伴随应用程序启动,可根据设置的相关限流策略规则,动态代理已加载到虚拟机中的应用程序的相关方法,对这些目标服务设置相关限流熔断策略,从而实现对不同服务进行限流,由探针执行限流策略,做到应用程序无感知情况下对其方法级做到限流熔断相关功能。本专利技术实施例中,通过预先在各服务的节点服务器分别设置探针,将所述限流策略下发至各服务的节点服务器的探针,利用探针对应用节点做到精准限流。配合相关规则,可以进一步对应用节点中服务级,实现方法级精准限流。同时,本专利技术还提供一种服务限流装置,如图2所示,该装置包括:策略接收模块201,用于接收用户设置的限流策略;下发模块202,用于将所述限流策略下发至各服务的节点服务器的探针;限流模块203,用于利用所述探针根据所述限流策略进行限流。本专利技术实施例中,其中,策略接收模块包括:连接建立单元,用于通过探针向远程控制台发送心跳建立连接;接收单元,建立连接后,用于接收用户通过所述远程控制台设置的限流策略。本专利技术一实施例,各服务所在的应用节点启动后通过探针向控制平台发送心跳,与控制平台建立连接,控制平台根据连接下发多种限流策略至探针。应用节点探针收到限流策略后,根据限流规则执行限流策略,实现对服务的限流。本专利技术实施例中,所述的装置还包括:探针设置模块,用于预先在各服务节点服务器分别设置探针。本专利技术一实施例中,服务节点服务器设置于Java虚拟机环境,置于服务器的探针为Java探针。下面结合一具体的实施例对本专利技术的技术方案作进一步详细说明。本实施例提供了一种无侵入的方法级分布式服务限流装置,本实施例中限流装置作为探针伴随应用节点启动,探针通过精心构造了字节码逻辑,使得增强类模块能在不违反JDK(java开发工具包)约束情况下实现对目标应用方法的无侵入运行时AOP(面向切面编程)拦截,故能在运行目标方法前完成流量控制模块的策略计划。达到应用无感知情况下,实现方法级的限流功能,本实施例中的探针架构如图3所示。本实施例运用探针技术(agent),在应用节点服务器中内置agent,伴随应用程序启动,可根据远程控制台对该探针配置相关规则,动态agent已加载到jvm(jvm,java虚拟机)中的应用程序的相关方法,对这些目标方法设置相关限流熔断策略。Java应用程序需要在java虚拟机(jvm)中运行,通常服务器节点会安装jdk等java虚拟机环境,程序员编写好java程序后,就把java程本文档来自技高网...

【技术保护点】
1.一种服务限流方法,其特征在于,所述的方法包括:/n接收用户设置的限流策略;/n将所述限流策略下发至各服务的节点服务器的探针;/n利用所述探针根据所述限流策略进行限流。/n

【技术特征摘要】
1.一种服务限流方法,其特征在于,所述的方法包括:
接收用户设置的限流策略;
将所述限流策略下发至各服务的节点服务器的探针;
利用所述探针根据所述限流策略进行限流。


2.如权利要求1所述的服务限流方法,其特征在于,所述的接收用户设置的限流策略包括:
通过探针向远程控制台发送心跳建立连接;
建立连接后,接收用户通过所述远程控制台设置的限流策略。


3.如权利要求1所述的服务限流方法,其特征在于,所述的服务节点服务器设置于Java虚拟机环境。


4.如权利要求1所述的服务限流方法,其特征在于,所述的将所述限流策略下发至各服务的节点服务器的探针之前包括:
预先在各服务的节点服务器分别设置探针。


5.如权利要求3或4中任一项所述的服务限流方法,其特征在于,所述的探针为Java探针。


6.如权利要求1所述的服务限流方法,其特征在于,所述的限流策略包括:对服务的访问截断策略、适配器策略以及流量规划控制策略。


7.一种服务限流装置,其特征在于,所述的装置包括:
策略接收模块,用于接收用户设置的限流策略;
下发模块,用于将所述限流策略下发至各服务的节点服务器的探针;
限...

【专利技术属性】
技术研发人员:顾欣夏龙飞让涛颜高飞
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1