一种全局流控方法及装置制造方法及图纸

技术编号:20013942 阅读:147 留言:0更新日期:2019-01-05 22:18
本发明专利技术实施例公开了一种全局流控方法及装置,涉及互联网技术领域,能够提供一种分布式系统中能够灵活部署的全局流控方案,缓减通过增加硬件设备的方式提高系统资源量从而导致的成本问题。本发明专利技术包括:在接收到应用服务器发送的请求消息后,确定所述请求消息对应的流控项,其中,所述流控项包括至少一个分项;根据所述流控项,向中央控制器请求获取令牌;获取所述中央控制器分配的令牌并反馈至发出请求的应用服务器。本发明专利技术适用于分布式系统中的全局流控。

A Global Flow Control Method and Device

The embodiment of the present invention discloses a global flow control method and device, which relates to the field of Internet technology, and can provide a flexible global flow control scheme in a distributed system to alleviate the cost problems caused by increasing system resources by adding hardware devices. The invention includes: after receiving the request message sent by the application server, determining the flow control item corresponding to the request message, in which the flow control item includes at least one sub-item; requesting a token from the central controller according to the flow control item; acquiring the token allocated by the central controller and feeding back to the application server that issued the request. The invention is suitable for global flow control in distributed system.

【技术实现步骤摘要】
一种全局流控方法及装置
本专利技术涉及互联网
,尤其涉及一种全局流控方法及装置。
技术介绍
随着电商、互联网金融业的兴起,对于支撑各类在线业务的IT系统提出了高并发、高可靠、低延迟、低成本等综合能力要求。为了保障整个IT生态链总体上的健康度,对于接入的子系统进行流控与降级是一种常用的控制手段。随着业务规模的快速增长,往往一个IT生态链会涉及数百个子系统,几千至几万台硬件设备,整个系统的风险点急剧上升,为了保障系统整体或部分一直在线,大规模全局系统中的系统架构,一般都会进行分布式的多活部署。而在实际的工程应用中,需要在令牌的发放侧明确令牌的有效期,并将具有相同有效期的令牌分装在一个或者多个子集合中,当应用服务器请求令牌时,则将子集合作为令牌资源进行分配。在传统的单应用/数据节点、单机房情况下,子集合的分配过程中,占用系统资源的问题还不明显。但是,对于分布式的多活系统,不同节点对于令牌的需求量也不一样,因此为保障令牌分配过程中的均匀性,缓减令牌被闲置占用的问题,设计人员都会想尽办法减小子集合的粒度,提高令牌分配的均匀性。但是,子集合的粒度越小意味同时需要管理的子集合的数量越多,就需要占用更多的系统资源,其结果往往是系统资源的消耗量增加了一个量级。对于银行、铁路售票等重要部门的系统来说,可以通过增加硬件设备的方式提高系统资源量,从而解决该问题,但是这种方式对于大部分互联网企业来说,成本太高。
技术实现思路
本专利技术的实施例提供一种全局流控方法及装置,能够提供一种分布式系统中能够灵活部署的全局流控方案,缓减通过增加硬件设备的方式提高系统资源量从而导致的成本问题。为达到上述目的,本专利技术的实施例采用如下技术方案:在接收到应用服务器发送的请求消息后,确定所述请求消息对应的流控项,其中,所述流控项包括至少一个分项;根据所述流控项,向中央控制器请求获取令牌;获取所述中央控制器分配的令牌并反馈至发出请求的应用服务器,其中,针对一个分项所分配的令牌的数量由所述中央控制器根据加总的时间和每秒流控值的获取;所述每秒流控值为:所述中央控制器单位时间内分配的令牌数。本实施例中提供了一种本地与中央控制相结合的流控体系:在本地组件加载相应的规则引擎,从而判定需要流控的场景,其中,规则引擎可以采用目前已有的技术和算法。中央控制器以每秒流控值和加总的时间计算所需分配的令牌数,从而实现了完全以时间度量的令牌产生数量。并且,由于通过本地组件隔离了应用服务器和中央控制器的直接通信,使得中央控制器的通信压力减少。本实施例尤其适用于大规模、分布式的实时处理系统上,并且通过更改时间阈值和每秒流控值,即可实现大规模、分布式的实时处理系统的快速配置的,快速变更和生效的流控机制,实际应用中可以适应几乎所有的流控场景。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术实施例提供的一种可能的系统架构示意图;图2为本专利技术实施例提供的一种方法流程示意图;图3为本专利技术实施例提供的另一种方法流程示意图;图4为本专利技术实施例提供的具体实例的示意图。具体实施方式为使本领域技术人员更好地理解本专利技术的技术方案,下面结合附图和具体实施方式对本专利技术作进一步详细描述。下文中将详细描述本专利技术的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本专利技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本专利技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。本实施例中的方法流程,具体可以在一种如图1所示的系统上执行,该系统包括:应用服务器、中央控制器和本地组件。其中,应用服务器具体用于运行各类在线业务系统,比如:网购提供、物流系统、订单系统、在线金融系统等等,这些应用服务器在运行的过程中,由于预先设定的运行规则和运行机制,往往需要向后台服务器请求令牌。需要说明的是,本实施例中,对于应用服务器为何需要请求令牌的原因和具体的业务规则并不做限定,本实施例的方案主要用于收到令牌请求后的处理过程。中央控制器具体可以设置在:用于管理应用服务器集群的后台服务器、数据中心等分布式系统中通常被称为“后台”的一侧。本实施例中所揭示的应用服务器以及中央控制器,具体可以是服务器、工作站、超级计算机等设备,或者是由多个服务器组成的一种用于数据处理的服务器集群系统。需要说明的是,在实际应用中,本地组件可以实现在一个独立的服务器设备上;或者,应用服务器和本地组件集成在同一个服务器集群中,即通过同一个服务器集群同时承担应用服务器和本地组件的功能,例如:在应用服务器的服务器集群系统中,建立虚拟机并用于运行用于实现本地组件的具体功能的程序代码。从程序代码层面上,本地组件功能要求,可以包括:采用一种高效的规则引擎,能够快速的根据请求判定出涉及的流控项;与中央控制器高效交互,获得各分项的令牌值,并在无令牌时以合适的方式通知本地的应用系统;采取适合的机制确保整个获取令牌的过程在确定的时间阈值内结束(比尔:10ms以内)。即在本实施例中,采用专门的本地组件向中央控制器发送令牌请求,而不是海量的应用服务器直接向中央控制器发送令牌请求,从而减少中央控制器的通信压力。从程序代码层面上,中央控制器可以实现为:部署为大量java应用服务集群+redis高可用集群;Redis中主要通过incr指令来完成本实施例中所涉及的算法要求。本地组件以jar包方式提供给应用服务器,从而以透明的方式提供流控功能,即对于应用服务器来说,本地组件是不可见的,应用服务器一侧也不需要进行额外的改造,从而降低本实施例方案的实现成本。中央控制器可以独占性服务存在,即系统全局只有一个。中央控制器在硬件层面可以集群方式部署,所有组成部分不存在单点。本专利技术实施例提供一种全局流控方法,可以实现在如图1所示的本地组件上,如图2所示,包括:S11、在接收到应用服务器发送的请求消息后,确定所述请求消息对应的流控项。其中,所述流控项包括至少一个分项。所述请求消息用于应用服务器向后台侧请求获取令牌。中央本文档来自技高网
...

【技术保护点】
1.一种全局流控方法,其特征在于,包括:在接收到应用服务器发送的请求消息后,确定所述请求消息对应的流控项,其中,所述流控项包括至少一个分项;根据所述流控项,向中央控制器请求获取令牌;获取所述中央控制器分配的令牌并反馈至发出请求的应用服务器,其中,针对一个分项所分配的令牌的数量由所述中央控制器根据加总的时间和每秒流控值的获取;所述中央控制器针对每一个接收到的令牌请求分配时间片,并在第二时间轴上将时间点向前移动,直至所述第二时间轴上的时间点的值达到第一时间轴当前的时间值,时间点向前移动的量等于所分配出的时间片的量,所述第一时间轴对应自然时间,每次分配的时间片各自对应一个分项;所述每秒流控值为:所述中央控制器单位时间内分配的令牌数。

【技术特征摘要】
1.一种全局流控方法,其特征在于,包括:在接收到应用服务器发送的请求消息后,确定所述请求消息对应的流控项,其中,所述流控项包括至少一个分项;根据所述流控项,向中央控制器请求获取令牌;获取所述中央控制器分配的令牌并反馈至发出请求的应用服务器,其中,针对一个分项所分配的令牌的数量由所述中央控制器根据加总的时间和每秒流控值的获取;所述中央控制器针对每一个接收到的令牌请求分配时间片,并在第二时间轴上将时间点向前移动,直至所述第二时间轴上的时间点的值达到第一时间轴当前的时间值,时间点向前移动的量等于所分配出的时间片的量,所述第一时间轴对应自然时间,每次分配的时间片各自对应一个分项;所述每秒流控值为:所述中央控制器单位时间内分配的令牌数。2.根据权利要求1所述的方法,其特征在于,所述根据所述流控项,向中央控制器请求获取令牌,包括:判定本地是否缓存了所述流控项中各个分项对应的令牌,并筛选出在本地没有缓存令牌的分项;依据筛选后的分项向中央控制器请求获取令牌。3.根据权利要求1所述的方法,其特征在于,还包括:当向中央控制器请求获取令牌失败时,本地组件生成令牌;从发出请求的应用服务器中筛选应用服务器,向筛选出的应用服务器反馈令牌,其中,所述本地组件生成令牌少于所有应用服务器请求的令牌数。4.一种全局流控方法,其特征在于,包括:接受本地组件发送的令牌请求,其中,所述令牌请求中记录流控项,所述流控项包括至少一个分项;针对每一个接收到的令牌请求分配时间片,并在第二时间轴上将时间点向前移动,直至第二时间轴上的时间点的值达到第一时间轴当前的时间值,其中,时间点向前移动的量等于所分配出的时间片的量,所述第一时间轴对应自然时间,每次分配的时间片各自对应一个分项;对分配给每一个分项的时间片进行加总得到加总的时间,根据所述加总的时间和每秒流控值,获取所述流控项中的每一个分项的令牌的数量,并根据所述数量向所述本地组件分配令牌。5.根据权利要求4所述的方法,其特征在于,一个分项对应一个场景主键;在向所述本地组件分配令牌后,覆写各个分项对应的场景主键。6.根据权利要求4所述的方法,其特征在于;所述每秒流控值为:所述中央控制器单位时间内分配的令牌数。7.根据权利要求6所述的方法,其特征在于,所述根据加总的时间和每秒流控值,获取所述流控项中的每一个分项的令牌的数量,包括:在超过所述时间阈值之前,接收所述本地组件向所述中央控制器...

【专利技术属性】
技术研发人员:郭宏文鞠伟
申请(专利权)人:苏宁易购集团股份有限公司
类型:发明
国别省市:江苏,32

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

1