CN110191160A - 一种并发控制方法和装置 - Google Patents

一种并发控制方法和装置 Download PDF

Info

Publication number
CN110191160A
CN110191160A CN201910390740.3A CN201910390740A CN110191160A CN 110191160 A CN110191160 A CN 110191160A CN 201910390740 A CN201910390740 A CN 201910390740A CN 110191160 A CN110191160 A CN 110191160A
Authority
CN
China
Prior art keywords
current limliting
parameter
server
message request
message
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
Application number
CN201910390740.3A
Other languages
English (en)
Inventor
毕坚
殷凇
罗子辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201910390740.3A priority Critical patent/CN110191160A/zh
Publication of CN110191160A publication Critical patent/CN110191160A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例涉及金融科技技术领域,尤其涉及一种并发控制方法和装置,包括:限流服务器获取负载均衡设备转发的报文请求;所述限流服务器根据所述报文请求,确定所述报文请求的属性信息;所述限流服务器根据所述属性信息,获取所述属性信息对应的配置参数和统计参数;所述配置参数为根据所述属性信息配置的;若根据所述配置参数和统计参数,确定所述报文请求满足转发条件,则将所述报文请求转发至处理服务器,以处理所述报文请求。

Description

一种并发控制方法和装置
技术领域
本发明实施例涉及金融科技领域,尤其涉及一种并发控制方法和装置。
背景技术
随着计算机技术的发展,计算机相关的技术(大数据、分布式架构等)在金融领域的应用也越来越广泛,传统金融业正在逐步向金融科技(Fintech)转变,现有技术中,为了保证业务的平稳运行,往往需要对交易请求的流量进行限制,防止外部系统无限制地发送大量交易请求导致核心系统大量资源占用,甚至宕机。
常用的并发控制方法包括硬件限流和软件限流。硬件限流通过购买专业的限流工具来限制外部访问,往往成本昂贵,并且大多只能基于第四层协议(TCP/IP)进行限制,不够灵活。软件限流作为成本较低且更为灵活的方案是目前的业界的主流。目前的软件限流算法主要通过一个简单计数器来限制每秒能够通过多少个请求业务。
然而,尽管上述软件限流算法能够基于业务需要限制访问流量,但是限流的功能比较单一,面对复杂的业务需求时不能够自适应的调节不同业务的流量阈值分配,降低了流量资源的利用率,从而降低了系统的稳定性。
发明内容
本发明实施例提供一种并发控制方法和装置,用以实现在面对复杂的业务需求时能够针对不同报文的属性进行分配阈值,能够提升流量资源的利用率。
本发明实施例提供一并发控制方法,所述方法包括:
限流服务器获取负载均衡设备转发的报文请求;
所述限流服务器根据所述报文请求,确定所述报文请求的属性信息;
所述限流服务器根据所述属性信息,获取所述属性信息对应的配置参数和统计参数;所述配置参数为根据所述属性信息配置的;
若根据所述配置参数和统计参数,确定所述报文请求满足转发条件,则将所述报文请求转发至处理服务器,以处理所述报文请求。
一种可能的实现方式,所述根据所述配置参数和统计参数,确定所述报文请求满足转发条件,包括:
基于所述配置参数,确定当前的统计参数是否满足重置条件;
若确定满足重置条件,则将所述统计参数重置;在重置后根据所述报文请求更新所述统计参数并确定更新后的统计参数是否满足所述转发条件;
若确定不满足所述重置条件,则根据所述报文请求更新所述统计参数,并确定更新后的统计参数是否满足所述转发条件。
一种可能的实现方式,所述统计参数至少包括以下一项或多项:重置时间、统计报文数;所述配置参数至少包括以下一项或多项:限流阈值、统计周期;
所述确定当前的统计参数是否满足重置条件,包括:
确定所述重置时间和当前时间的时间差;
若确定所述时间差大于或等于所述统计周期,则将所述重置时间设置为所述当前时间,且重置所述统计报文数并加预设增量;
若确定所述时间差小于所述统计周期,则将所述统计报文数加预设增量;
所述确定根据更新后的所述统计参数时间是否满足所述转发条件,包括:
若确定所述统计报文数小于所述限流阈值,则确定为所述报文请求满足转发条件。
一种可能的实现方式,所述配置参数为根据所述属性信息配置的,包括:
所述属性信息至少包括以下一项或多项:所述报文请求的商户信息、所述报文请求的接口信息、所述报文请求的业务类型;
针对任一属性信息,确定所述属性信息对应的总限流参数;根据当前可用的限流服务器的个数和所述总限流参数,确定每个限流服务器的限流阈值。
一种可能的实现方式,所述根据当前可用的限流服务器的个数和所述总限流参数,确定每个限流服务器的限流阈值,包括:
若在统计周期内可用的限流服务器的个数发生变化,则获取各限流服务器的统计报文数;
根据所述总限流参数和各限流服务器的统计报文数,确定更新的总限流参数;
根据可用的限流服务器的个数和更新后的总限流参数,确定每个限流服务器的限流阈值。
本发明另一实施例提供了一种并发控制装置,所述装置包括:
收发单元,用于获取负载均衡设备转发的报文请求;
处理单元,用于根据所述报文请求,确定所述报文请求的属性信息;根据所述属性信息,获取所述属性信息对应的配置参数和统计参数;所述配置参数为根据所述属性信息配置的;若根据所述配置参数和统计参数,确定所述报文请求满足转发条件,则将所述报文请求转发至处理服务器,以处理所述报文请求。
一种可能的实现方式,所述处理单元,具体用于:
基于所述配置参数,确定当前的统计参数是否满足重置条件;若确定满足重置条件,则将所述统计参数重置;在重置后根据所述报文请求更新所述统计参数并确定更新后的统计参数是否满足所述转发条件;若确定不满足所述重置条件,则根据所述报文请求更新所述统计参数,并确定更新后的统计参数是否满足所述转发条件。
一种可能的实现方式,所述统计参数至少包括以下一项或多项:重置时间、统计报文数;所述配置参数至少包括以下一项或多项:限流阈值、统计周期;
所述处理单元,具体用于:
确定所述重置时间和当前时间的时间差;若确定所述时间差大于或等于所述统计周期,则将所述重置时间设置为所述当前时间,且重置所述统计报文数并加预设增量;若确定所述时间差小于所述统计周期,则将所述统计报文数加预设增量;若确定所述统计报文数小于所述限流阈值,则确定为所述报文请求满足转发条件。
本发明另一实施例提供了一种计算设备,其包括存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一种方法。
本发明另一实施例提供了一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。
上述实施例提供的一种并发控制方法和装置,包括:获取负载均衡设备转发的报文请求;所述限流服务器根据所述报文请求,确定所述报文请求的属性信息;所述限流服务器根据所述属性信息,获取所述属性信息对应的配置参数和统计参数;所述配置参数为根据所述属性信息配置的;若根据所述配置参数和统计参数,确定所述报文请求满足转发条件,则将所述报文请求转发至处理服务器,以处理所述报文请求。因此,能够通过报文请求的属性信息,按需分配,从而提升系统的报文处理性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的一种并发控制系统的架构示意图;
图2为本发明实施例提供的一种并发控制方法的流程示意图;
图3为本发明实施例提供的一种并发控制方法的流程示意图;
图4为本发明实施例提供的限流服务器的结构示意图;
图5为本发明实施例提供的一种并发控制装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
金融科技(Fintech)是指将信息技术融入金融领域后,为金融领域带来的一种新的创新科技,通过使用先进的信息技术辅助实现金融作业、交易执行以及金融系统改进,可以提升金融系统的处理效率、业务规模,并可以降低成本和金融风险。
应理解,本申请实施例中“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a、b、c可以是单个,也可以是多个。
下面,对本申请实施例涉及的技术术语进行介绍:
报文请求方:用于与报文转发系统对接,以对报文请求分别执行代收、代付、跳转支付、直连支付、退款、余额查询、鉴权等行为的商户。
接口:报文请求方的终端请求接口地址,并传入该接口定义好的参数,通过接口自身的逻辑处理,返回接口约定好的数据以及相应的数据格式。
限流:当报文请求达到一定的并发数或速率,就进行等待、排队、降级、拒绝服务等。
业务类型:商户向系统提供的接口发起的报文请求中的报文请求类型,如代收、代付、跳转支付、直连支付、退款、余额查询、鉴权等。
图1为本发明实施例提供的一种并发控制的系统架构示意图,如图1所示,该系统中可以包括报文转发设备110、负载均衡设备120和至少一个限流服务器(以下以2个限流服务器130和140为例,进行说明),每个限流服务器至少对应1个处理服务器,为提高负载均衡效果,限流服务器转发至处理服务器可以通过复杂均衡策略确定(此处以限流服务器130转发至处理服务器131,限流服务器140转发至处理服务器141为例进行说明)。限流配置设备150。以限流服务器130为例,如图1所示,限流服务器130处理服务器可拥有多个,此处以报文处理器131为例。
本发明实施例中,报文转发设备110可以与负载均衡设备120通信连接,负载均衡设备120可以与至少一个限流服务器(比如限流服务器130)通信连接。其中,实现通信连接的方式可以有多种,比如可以通过有线方式实现通信连接,或者也可以通过无线方式实现通信连接,具体不作限定。
限流服务器在接收到报文请求后,可以将报文请求存储在该服务器内部设置的存储设备中;进一步地,处理服务器可以从对应的限流服务器获取报文请求,以对所述报文请求进行处理,例如,可以将报文请求提交给某一个应用,以使该应用对报文请求进行后续操作。
具体实施中,负载均衡设备120可以接收报文转发设备110发送给负载均衡设备120的报文请求,并可以根据负载均衡的规则,将该报文请求转发至可用的限流服务器中的至少一个限流服务器中。
举例来说,报文转发设备110需要向处理服务器处理报文,则报文转发设备110可以向负载均衡设备120发送第一报文请求,第一报文请求中可以包括报文请求的标识和目标数据;相应地,负载均衡设备120接收到第一报文请求后,可以根据第一报文请求中包括的报文请求的标识,从负载均衡设备120根据负载均衡策略确定获取报文请求转发的限流服务器,若确定该报文请求需转发至限流服务器130,则根据预先存储的限流服务器130的IP地址,将报文请求发送给限流服务器130,限流服务器130根据负载均衡策略,确定需要处理该报文请求的处理服务器,例如若确定为处理服务器141,则限流服务器130将该报文请求转发至处理服务器141处理。
现有的限流是针对整个系统或者接口级别的,是为了防止接口访问量突增而带来服务器压力、甚至服务不可用而采用的一种保护机制。它是通过对并发请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理。仅仅是为了保护系统,让系统能稳定的提供服务,无法对商户进行精细的限流。
商户的报文请求中,有请求频率很低的,有请求频率比较高的,各商户请求高峰时间段也不一样等等,如果只是简单的根据请求量来做简单的限流控制,就会出现请求频率低的商户失败率很高,即出现商户接口请求的互相影响。
基于图1所示意的并发控制系统的系统架构,图2为本发明实施例提供的一种并发控制方法对应的流程示意图,该方法包括:
步骤101:获取限流服务器上报的服务器状态;
其中,服务器状态包括网络状态、负载情况等。所有限流服务器都上报自已的状态给到配置服务器,配置服务器能实时知道几个可用的限流服务器,这样在配置服务器管理台配置时,可以根据限流服务器数量确定分发至每个限流服务器的限流阈值。
步骤102:根据商户的属性信息,确定所述商户的报文请求的总限流参数;
其中,所述属性信息至少包括以下一项或多项:所述报文请求的商户信息、所述报文请求的接口信息、所述报文请求的业务类型等;具体的,商户信息可以包括商户的商户号、商户标识等;接口信息可以包括:请求接口URL等。
具体的,根据不同的属性设定不同的总限流参数的方式,在此不做限定。
针对任一属性信息,确定所述属性信息对应的总限流参数;根据当前可用的限流服务器的个数和所述总限流参数,确定每个限流服务器的限流阈值。
举例来说,可以根据商户的商户号,设定在不同的商户号的总限流参数;例如,商户包括商户号1,和商户号2,可以设定商户号1的总限流参数1,商户号2的总限流参数2;也可以根据商户的商户号、业务类型,设定在不同的商户号的不同的业务类型的报文请求的总限流参数;例如,商户的商户号1包括业务类型1和业务类型2,则可以设定商户号1在业务类型1的总限流参数11,设定商户号1在业务类型2的总限流参数12;也可以根据商户的商户号、业务类型、请求接口URL,设定在不同的商户号的不同的业务类型的在不同的请求接口获取的报文请求的总限流参数;例如,商户的商户号1的业务类型1包括接口1和接口2,则可以设定商户号1在接口1发送业务类型1报文请求的总限流参数111,可以设定商户号1在接口2发送业务类型1报文请求的总限流参数112。
限流控制是根据指定时间段内处理多少请求来进行控制,运维或业务管理人员可以在配置服务器根据商户的属性的特点进行限流的配置,也可以根据各商户的实际请求量来实时修改限流参数。
在一种具体的实施例中,总限流参数可以包括,总限流阈值和统计周期;总限流阈值可以为统计周期内的可容许的最大请求数,统计周期可以为一时间长度;即可以是1秒内5笔请求,或1分钟内100笔请求,或30秒100笔请求等等。其中,最大请求数和时间长度都是可以通过配置服务器为各限流服务器配置的,配置的方式,可以为预先配置,也可以为实时配置,在此不做限定。若确定未配置所述配置参数,则可以采用系统默认的配置参数。
步骤103:根据商户的报文请求的总限流参数,及限流服务器的状态,确定每个限流服务器的限流参数。
一种可能的实现方式,根据可用的限流服务器的数量,对总限流参数进行均分。
当然,还可以根据限流服务器的可处理请求能力,进行加权分配,在此不做限定。
需要说明的是,由于限流值是整数,如果出现配置的限流值不能被限流服务器数量整除,各限流服务器之间的限流阈值可以存在1个的配置差异。
例如,商户的商户号1在接口2发送业务类型1报文请求的总限流参数111,当前可用的限流服务器为限流服务器130和140;可以设定限流服务器130针对商户号1在接口2发送业务类型1报文请求的限流参数112_130,可以设定限流服务器140针对商户号1在接口2发送业务类型1报文请求的限流参数112_140。
举例来说,针对商户1配置的报文请求(业务类型为代收,对应的接口为URL1)配置1分钟402个请求,而当前有5个可用的限流服务器,即,1分钟402个请求的配置,将会分成3个1分钟80个请求的配置,2个1分钟81个请求的配置。分配方式可以为随机分配。
步骤104:将确定的每个限流服务器的限流参数存储,并同步提交到各限流服务器。
其中,存储的方式,可以包括存储至缓存服务器,利于各限流服务器快速调用对应的限流参数,而不需要每个限流服务器都存储各种报文请求对应的各限流服务器对应的限流参数或各种报文请求对应的总限流参数。还可以包括数据库,用于备份限流参数。为防止限流服务器的限流参数的缓存丢失,限流服务器会定时从数据库同步限流参数到限流服务器。也可以无需缓存系统,配置服务器配置的限流参数更新数据库后,直接同步更新到所有限流服务器。
一种可能实现方式,配置服务器配置的限流参数,配置人员在配置服务器配置时需根据当前限流服务器的数量进行计算配置,预先确定出每个限流服务器上的限流参数,即如果在配置服务器针对商户请求方的某属性信息的报文请求配置的是1分钟200个请求,即下发到各限流服务器都是1分钟200个请求,对于N台限流服务器,该属性信息对应的报文请求的总限流值是(N*200)个请求。
结合上述实施例,如图3所示,本发明实施例还提供一种并发控制方法对应的流程示意图,该方法包括:
步骤201:限流服务器获取负载均衡设备转发的报文请求;
其中,报文请求为合作商户的客户发起的;报文转发服务器对所述报文请求经过防攻击等校验后,通过负载均衡设备转发至限流服务器的。
具体的,报文转发服务器对所述报文请求经过防攻击等校验的具体方式,可以通过统一认证的公共服务平台,通过源ID标识业务平台,通过应用ID标识具体应用。对于不同的接口,源ID和应用ID有可能存在于报文请求中的头文件或参数(param)中,也有可能放在数据字段中。服务器可以针对指定标识的报文请求进行限流,以过滤掉非法的报文请求。
另外,报文转发服务器在接收到报文请求以后,还可以根据报文请求中所携带的优先级参数值,然后根据报文中所携带的优先级参数值,将报文放置到相应的业务队列中。之后,负载均衡设备按照预设的转发策略从各业务队列中获取报文进行报文转发,其中,转发策略可以为不同优先级的业务队列对应不同的访问频次,优先级越高访问频次越高,这样,通过设置优先级不同的业务队列,能够避免其它业务对高频业务的抢占问题,提高系统的稳定性和业务质量。
步骤202:限流服务器根据所述报文请求,确定所述报文请求的属性信息;
限流服务器从报文请求中获取到商户的商户号、业务类型以及请求接口URL等属性信息;具体的,属性信息可以是发送报文请求的发送方的标识,例如包括以下任一种:URL,IP地址,源ID,应用ID。预先设置的属性还可以是预设字段,用于表示商户的属性的标签。
步骤203:限流服务器根据所述属性信息,获取所述属性信息对应的配置参数和统计参数;所述配置参数为根据所述属性信息配置的;
具体的,限流服务器根据所述属性信息,获取所述属性信息对应的配置参数,可以为预先为该限流服务器为所述属性信息配置的限流参数;举例来说,若确定报文请求的属性信息为商户号1在接口2发送业务类型1,限流服务器为限流服务器130;则可以确定限流服务器130针对商户号1在接口2发送业务类型1报文请求的限流参数112_130。其中,统计参数为目前统计的与所述报文请求相同的属性信息的报文请求统计值,例如,计数器值;最后一次统计时间。
结合上述实施例,限流服务器可以根据所述属性信息,至缓存服务器获取所述属性信息对应的所述限流服务器对应的限流参数。当然,也可以根据限流服务器预先存储的所述属性信息对应的所述限流服务器对应的限流参数。
步骤204:若根据所述配置参数和统计参数,确定所述报文请求满足转发条件,则将所述报文请求转发至处理服务器,以处理所述报文请求。
具体的,如果确定所述报文请求不满足转发条件,则返回“请稍后再试”之类的响应,否则将请求转发到处理服务器处理后再返回报文请求的响应消息。
具体的,限流服务器还可以向报文请求的发送方响应报文请求被拒绝处理的提示信息,例如,可以是向报文请求的发送方返回“403”。如果不存在,则说明无需对该报文请求进行限流,则可以处理该报文请求。
本申请实施例中,可以精细地限流,以报文请求的各种属性信息进行精细的控制,不会出现高频商户的报文请求影响低频商户的报文请求,能隔离商户间的影响,提高报文转发的效果。
一种可能的实现方式,所述根据所述配置参数和统计参数,确定所述报文请求满足转发条件,包括:
步骤一、基于所述配置参数,确定当前的统计参数是否满足重置条件;
其中,所述重置条件是根据当前的统计参数中,最后一次统计时间与配置参数中的统计周期相比较确定的。
步骤二、若确定满足重置条件,则将所述统计参数重置;在重置后根据所述报文请求更新所述统计参数并确定更新后的统计参数是否满足所述转发条件;
步骤三、若确定不满足所述重置条件,则根据所述报文请求更新所述统计参数,并确定更新后的统计参数是否满足所述转发条件。
一种可能的实现方式,所述统计参数至少包括以下一项或多项:重置时间、统计报文数;所述配置参数至少包括以下一项或多项:限流阈值、统计周期;
在步骤二中,所述确定当前的统计参数是否满足重置条件,可以包括以下步骤:
步骤一、确定所述重置时间和当前时间的时间差;
其中,所述重置时间为上一次重置所述统计报文数的时间,统计报文数的统计方式可以为一计数器。
步骤二、若确定所述时间差大于或等于所述统计周期,则将所述重置时间设置为所述当前时间,且重置所述统计报文数并加预设增量;
具体的,如果统计周期为2秒,当前时间为12:00:03,重置时间为12:00:00,则确定时间差为3秒,大于统计周期2秒,则满足重置条件,则将重置时间设为当前时间,记数器清零,再将记数器加预设增量,该预设增量可选为一。
若统计参数为限流服务器从缓存服务器获取的,则此时,限流服务器需要将加一后的记数器的统计报文数更新到缓存服务器。
步骤三、若确定所述时间差小于所述统计周期,则将所述统计报文数加预设增量;
具体的,如果统计周期为2秒,当前时间为12:00:03,重置时间为12:00:02,则确定时间差为1秒,小于统计周期2秒,则不满足重置条件,则直接将记数器加一,确定为统计报文数。
步骤四、若确定所述统计报文数小于所述限流阈值,则确定为所述报文请求满足转发条件。
实施例二
一种可能的实现方式,所述重置条件为:若确定所述当前时间到达统计周期时长,则对统计报文数进行重置;
所述转发条件为:若确定所述统计报文数小于所述限流阈值,则确定为所述报文请求满足转发条件。
举例来说,如果统计周期为2秒,且开始统计的时间为11:00:00,当前时间为12:00:03,最近一次的重置时间为12:00:02,则可以确定未到达重置条件,不需要重置统计报文数对应的计数器,则将统计报文数对应的计数器加预设增量,若确定加预设增量后的计数器小于所述限流阈值,则确定为所述报文请求满足转发条件。
由于可用的限流服务器和报文请求的数目可能会随时间变化,因此,可用配置服务器检测到限流服务器的数量变更或商户在前端页面进行配置修改提交后,都需重新上述实施例中的分配、更新数据库和推送的过程。当然,各限流服务器为防止推送失败或丢失,也会定时拉取从配置服务器拉取配置参数。配置服务器修改配置参数后,限流服务器会实时生效。
一种可能的实现方式,所述根据当前可用的限流服务器的个数和所述总限流参数,确定每个限流服务器的限流阈值,包括:
若在统计周期内可用的限流服务器的个数发生变化,则获取各限流服务器的统计报文数;
根据所述总限流参数和各限流服务器的统计报文数,确定更新的总限流参数;
根据可用的限流服务器的个数和更新后的总限流参数,确定每个限流服务器的限流阈值。
举例来说,以均分为例,更新前,限流服务器的个数为10,更新后的限流服务器的个数为5;则将更新前的每个限流服务器的配置参数为1秒100个请求更新为1秒50个请求。
例如,配置分配给商户X的业务类型1的URL1的报文请求的配置参数为1秒100个请求;
例如,若确定在更新前,计数器已到达100,在这一秒内,接下来的请求将会被限流,直接返回“请稍后再试”之类的响应,直到这1秒结束,计数器被重置。
在配置服务器中,在1:40:00更新了配置参数,使其在当前的限流服务器的限流配置变成了1秒50个请求:
一种可能的情形,更新后,若确定该限流服务器的计数器已超过50,则在这个计数器的当前统计周期内的报文请求都将会被限流,返回“请稍后再试”之类的响应。
一种可能的情形,在1:40:00更新了配置参数,使其在当前的限流服务器的限流配置变成了1秒150个请求:
一种可能的情形,更新后,计数器的限流阈值生效,在这个计数器的当前统计周期内的报文请求超过100,但未超过150时,不会被限流。
由于能够自适应的调节不同业务的限流阈值的分配,因此,能够通过按需分配,提升流量的利用率,从而保证系统的稳定性。而通过多个属性特征进行多维度的流量过滤,能够提供更为精确灵活的流量控制策略。
基于相同的技术构思,本发明实施例还提供一种并发控制装置,如图4所示,该装置可包括:
收发单元401,用于获取负载均衡设备转发的报文请求;
处理单元402,用于根据所述报文请求,确定所述报文请求的属性信息;根据所述属性信息,获取所述属性信息对应的配置参数和统计参数;所述配置参数为根据所述属性信息配置的;若根据所述配置参数和统计参数,确定所述报文请求满足转发条件,则将所述报文请求转发至处理服务器,以处理所述报文请求。
一种可能的实现方式,处理单元402,具体用于:
基于所述配置参数,确定当前的统计参数是否满足重置条件;若确定满足重置条件,则将所述统计参数重置;在重置后根据所述报文请求更新所述统计参数并确定更新后的统计参数是否满足所述转发条件;若确定不满足所述重置条件,则根据所述报文请求更新所述统计参数,并确定更新后的统计参数是否满足所述转发条件。
一种可能的实现方式,处理单元402,具体用于:
所述统计参数至少包括以下一项或多项:重置时间、统计报文数;所述配置参数至少包括以下一项或多项:限流阈值、统计周期;
处理单元402,具体用于:
确定所述重置时间和当前时间的时间差;若确定所述时间差大于或等于所述统计周期,则将所述重置时间设置为所述当前时间,且重置所述统计报文数并加预设增量;若确定所述时间差小于所述统计周期,则将所述统计报文数加预设增量;若确定所述统计报文数小于所述限流阈值,则确定为所述报文请求满足转发条件。
一种可能的实现方式,处理单元402,具体用于:所述属性信息至少包括以下一项或多项:所述报文请求的商户信息、所述报文请求的接口信息、所述报文请求的业务类型;针对任一属性信息,确定所述属性信息对应的总限流参数;根据当前可用的限流服务器的个数和所述总限流参数,确定每个限流服务器的限流阈值。
一种可能的实现方式,处理单元402,具体用于:
若在统计周期内可用的限流服务器的个数发生变化,则获取各限流服务器的统计报文数;根据所述总限流参数和各限流服务器的统计报文数,确定更新的总限流参数;根据可用的限流服务器的个数和更新后的总限流参数,确定每个限流服务器的限流阈值。
基于相同的技术构思,本发明实施例提供了一种并发控制装置,如图5所示,包括至少一个处理器1101,以及与至少一个处理器连接的存储器1102,本发明实施例中不限定处理器1101与存储器1102之间的具体连接介质,图5中处理器1101和存储器1102之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器1102存储有可被至少一个处理器1101执行的指令,至少一个处理器1101通过执行存储器1102存储的指令,可以执行前述的资源管理方法中所包括的步骤(即步骤101~步骤103)。
其中,处理器1101是终端设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器1102内的指令以及调用存储在存储器1102内的数据,从而实现数据处理。可选的,处理器1101可包括一个或多个处理单元,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、商户界面和应用程序等,调制解调处理器主要处理运维人员下发的指令。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。在一些实施例中,处理器1101和存储器1102可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1101可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合资源处理的实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1102可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1102是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器1102还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本发明实施例提供了一种计算机存储介质,用于储存为上述计算设备所用的计算机程序指令,其包含用于执行上述并发控制方法的程序。
所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种并发控制方法,其特征在于,所述方法包括:
限流服务器获取负载均衡设备转发的报文请求;
所述限流服务器根据所述报文请求,确定所述报文请求的属性信息;
所述限流服务器根据所述属性信息,获取所述属性信息对应的配置参数和统计参数;所述配置参数为根据所述属性信息配置的;
若根据所述配置参数和统计参数,确定所述报文请求满足转发条件,则将所述报文请求转发至处理服务器,以处理所述报文请求。
2.如权利要求1所述的方法,其特征在于,所述根据所述配置参数和统计参数,确定所述报文请求满足转发条件,包括:
基于所述配置参数,确定当前的统计参数是否满足重置条件;
若确定满足重置条件,则将所述统计参数重置;在重置后根据所述报文请求更新所述统计参数并确定更新后的统计参数是否满足所述转发条件;
若确定不满足所述重置条件,则根据所述报文请求更新所述统计参数,并确定更新后的统计参数是否满足所述转发条件。
3.如权利要求2所述的方法,其特征在于,所述统计参数至少包括以下一项或多项:重置时间、统计报文数;所述配置参数至少包括以下一项或多项:限流阈值、统计周期;
所述确定当前的统计参数是否满足重置条件,包括:
确定所述重置时间和当前时间的时间差;
若确定所述时间差大于或等于所述统计周期,则将所述重置时间设置为所述当前时间,且重置所述统计报文数并加预设增量;
若确定所述时间差小于所述统计周期,则将所述统计报文数加预设增量;
所述确定根据更新后的所述统计参数时间是否满足所述转发条件,包括:
若确定所述统计报文数小于所述限流阈值,则确定为所述报文请求满足转发条件。
4.如权利要求2或3所述的方法,其特征在于,所述配置参数为根据所述属性信息配置的,包括:
所述属性信息至少包括以下一项或多项:所述报文请求的商户信息、所述报文请求的接口信息、所述报文请求的业务类型;
针对任一属性信息,确定所述属性信息对应的总限流参数;根据当前可用的限流服务器的个数和所述总限流参数,确定每个限流服务器的限流阈值。
5.如权利要求4所述的方法,其特征在于,所述根据当前可用的限流服务器的个数和所述总限流参数,确定每个限流服务器的限流阈值,包括:
若在统计周期内可用的限流服务器的个数发生变化,则获取各限流服务器的统计报文数;
根据所述总限流参数和各限流服务器的统计报文数,确定更新的总限流参数;
根据可用的限流服务器的个数和更新后的总限流参数,确定每个限流服务器的限流阈值。
6.一种并发控制装置,其特征在于,所述装置包括:
收发单元,用于获取负载均衡设备转发的报文请求;
处理单元,用于根据所述报文请求,确定所述报文请求的属性信息;根据所述属性信息,获取所述属性信息对应的配置参数和统计参数;所述配置参数为根据所述属性信息配置的;若根据所述配置参数和统计参数,确定所述报文请求满足转发条件,则将所述报文请求转发至处理服务器,以处理所述报文请求。
7.如权利要求6所述的装置,其特征在于,所述处理单元,具体用于:
基于所述配置参数,确定当前的统计参数是否满足重置条件;若确定满足重置条件,则将所述统计参数重置;在重置后根据所述报文请求更新所述统计参数并确定更新后的统计参数是否满足所述转发条件;若确定不满足所述重置条件,则根据所述报文请求更新所述统计参数,并确定更新后的统计参数是否满足所述转发条件。
8.如权利要求7所述的装置,其特征在于,所述统计参数至少包括以下一项或多项:重置时间、统计报文数;所述配置参数至少包括以下一项或多项:限流阈值、统计周期;
所述处理单元,具体用于:
确定所述重置时间和当前时间的时间差;若确定所述时间差大于或等于所述统计周期,则将所述重置时间设置为所述当前时间,且重置所述统计报文数并加预设增量;若确定所述时间差小于所述统计周期,则将所述统计报文数加预设增量;若确定所述统计报文数小于所述限流阈值,则确定为所述报文请求满足转发条件。
9.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至5任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至5任一项所述的方法。
CN201910390740.3A 2019-05-10 2019-05-10 一种并发控制方法和装置 Pending CN110191160A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910390740.3A CN110191160A (zh) 2019-05-10 2019-05-10 一种并发控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910390740.3A CN110191160A (zh) 2019-05-10 2019-05-10 一种并发控制方法和装置

Publications (1)

Publication Number Publication Date
CN110191160A true CN110191160A (zh) 2019-08-30

Family

ID=67715968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910390740.3A Pending CN110191160A (zh) 2019-05-10 2019-05-10 一种并发控制方法和装置

Country Status (1)

Country Link
CN (1) CN110191160A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110661717A (zh) * 2019-10-25 2020-01-07 上海燕汐软件信息科技有限公司 一种限流方法、装置及电子设备
CN111988355A (zh) * 2020-06-29 2020-11-24 汉海信息技术(上海)有限公司 限流方法、装置、服务器及服务器集群
CN112383585A (zh) * 2020-10-12 2021-02-19 广州市百果园网络科技有限公司 消息处理系统、方法及电子设备
CN113010818A (zh) * 2021-02-23 2021-06-22 腾讯科技(深圳)有限公司 访问限流方法、装置、电子设备及存储介质
CN114070847A (zh) * 2020-07-27 2022-02-18 腾讯科技(深圳)有限公司 服务器的限流方法、装置、设备及存储介质
CN115242872A (zh) * 2022-06-24 2022-10-25 平安银行股份有限公司 数据处理方法、装置、计算机设备及可读存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110661717A (zh) * 2019-10-25 2020-01-07 上海燕汐软件信息科技有限公司 一种限流方法、装置及电子设备
CN111988355A (zh) * 2020-06-29 2020-11-24 汉海信息技术(上海)有限公司 限流方法、装置、服务器及服务器集群
CN114070847A (zh) * 2020-07-27 2022-02-18 腾讯科技(深圳)有限公司 服务器的限流方法、装置、设备及存储介质
CN114070847B (zh) * 2020-07-27 2024-01-23 腾讯科技(深圳)有限公司 服务器的限流方法、装置、设备及存储介质
CN112383585A (zh) * 2020-10-12 2021-02-19 广州市百果园网络科技有限公司 消息处理系统、方法及电子设备
CN113010818A (zh) * 2021-02-23 2021-06-22 腾讯科技(深圳)有限公司 访问限流方法、装置、电子设备及存储介质
CN113010818B (zh) * 2021-02-23 2023-06-30 腾讯科技(深圳)有限公司 访问限流方法、装置、电子设备及存储介质
CN115242872A (zh) * 2022-06-24 2022-10-25 平安银行股份有限公司 数据处理方法、装置、计算机设备及可读存储介质
CN115242872B (zh) * 2022-06-24 2024-02-02 平安银行股份有限公司 数据处理方法、装置、计算机设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN110191160A (zh) 一种并发控制方法和装置
US9497139B2 (en) Client-allocatable bandwidth pools
CN111727428B (zh) 基于区块链的房间库存管理系统
CN110276182B (zh) Api分布式限流的实现方法
US11310208B1 (en) Secure time service
US11037118B2 (en) Zero knowledge third party guarantee of service on decentralized computing platform
US9154589B1 (en) Bandwidth-optimized cloud resource placement service
US9306870B1 (en) Emulating circuit switching in cloud networking environments
US8930489B2 (en) Distributed rate limiting of handling requests
CN108667867B (zh) 数据存储方法及装置
CN109194584A (zh) 一种流量监控方法、装置、计算机设备及存储介质
KR101865318B1 (ko) 버스트 모드 제어
US20140143300A1 (en) Method and Apparatus for Controlling Utilization in a Horizontally Scaled Software Application
US20160077846A1 (en) Resource credit pools for replenishing instance resource credit balances of virtual compute instances
US10846788B1 (en) Resource group traffic rate service
CN106936877B (zh) 一种内容分发方法、装置及系统
CN110417561B (zh) 一种基于区块链的分布式计费方法、装置和系统
CN108574645A (zh) 一种队列调度方法及装置
CN111049756A (zh) 请求响应方法、装置、电子设备及计算机可读存储介质
CN110544134A (zh) 一种资源处理方法、装置及计算机存储介质
CN110287266A (zh) 一种分布式系统及数据处理方法
US10027559B1 (en) Customer defined bandwidth limitations in distributed systems
CN110381150B (zh) 区块链上的数据处理方法、装置、电子设备及存储介质
CN106775499B (zh) 一种对公共存储空间进行合理化暴露的方法、暴露控制系统及一种云存储系统
US20220067683A1 (en) System for facilitating real-time transactions

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