一种限额控制方法及分布式限额控制系统的制作方法

文档序号:9581690阅读:422来源:国知局
一种限额控制方法及分布式限额控制系统的制作方法
【技术领域】
[0001]本发明涉及互联网技术领域,特别涉及一种限额控制方法及分布式限额控制系统。
【背景技术】
[0002]随着互联网的普及,上网人群越来越多,这对互联网的可靠性、扩容性提出了很高的要求。分布式系统由于使用了并行处理技术,处理计算能力强,并将工作负载分散在多台机器上,单机故障只会使一台机器停机,因此具有很高的可靠性,而且分布式系统允许在需求增长时逐渐进行扩充,因其具有上述优点,而普遍应用于互联网站及其他应用系统中。
[0003]互联网站及许多应用系统中为安全性或体验合理性考虑,经常会对用户的行为进行控制。例如:天气预报网站为防止其他网站抓取自身天气源数据,会对来源ip做每分钟、每小时请求次数限制,一旦固定来源ip请求次数超过系统设置值,系统屏蔽此ip再次请求。再比如登录QQ,飞信等通讯即时软件后的新邮件到达提醒,如果不对每小时内接收邮件数量做限额控制,那么频繁的新邮件到达提醒将大大降低用户体检。基于以上考虑,需要对于分布式系统下用户限额进行控制。
[0004]现有的分布式系统下限额控制方法是,假如服务端要对客户端的请求做每分钟400次限额控制,那么现有技术一般将400次的限额控制次数均匀分到各个服务器上,即每台服务器的每分钟限额控制为100次。
[0005]在实现本发明的过程中,发明人发现现有技术的限额控制方法至少存在如下问题:
[0006]在客户端随机访问分布式系统中的任一服务器时,会导致某一服务器的接收请求次数大于其他服务器的接收请求次数,从而导致限额控制不精准的问题。

【发明内容】

[0007]本发明提供了一种限额控制方法及分布式限额控制系统,以解决现有技术中在客户端随机访问分布式系统中的任一服务器时存在限额控制不精准的问题。
[0008]为达到上述目的,本发明实施例采用如下技术方案:
[0009]一方面,本发明实施例提供一种限额控制方法,所述方法包括:
[0010]应用服务器接收客户端发送的业务服务请求,向限额控制服务器发送限额控制请求;
[0011]所述限额控制服务器根据所述限额控制请求判断所述业务服务请求是否为所述客户端的首次业务服务请求;
[0012]如果是首次业务服务请求,所述限额控制服务器返回未超过限额指示至所述应用服务器;
[0013]如果不是首次业务服务请求,所述限额控制服务器进一步判断所述业务服务请求是否在有效期限内,若所述业务服务请求不在有效期限内,则返回未超过限额指示至所述应用服务器;若所述业务服务请求在有效期限内,再进一步判断所述客户端的请求次数是否超过最大限额数,若未超过最大限额数,返回未超过限额指示至所述应用服务器,若超过最大限额数,返回超过限额指示至所述应用服务器;
[0014]当接收到未超过限额指示时,所述应用服务器根据所述业务服务请求进行业务处理,返回处理结果至所述客户端;当接收到超过限额指示时,所述应用服务器返回错误信息响应至所述客户端。
[0015]另一方面,本发明实施例提供一种分布式限额控制系统,包括限额控制服务器和至少两个应用服务器;
[0016]所述应用服务器,用于接收客户端发送的业务服务请求,向限额控制服务器发送限额控制请求;当接收到未超过限额指示时,根据所述业务服务请求进行业务处理,返回处理结果至所述客户端;当接收到超过限额指示时,返回错误信息响应至所述客户端;
[0017]所述限额控制服务器,用于根据所述限额控制请求判断所述业务服务请求是否为所述客户端的首次业务服务请求;如果是首次业务服务请求,返回未超过限额指示至所述应用服务器;如果不是首次业务服务请求,进一步判断所述业务服务请求是否在有效期限内,若所述业务服务请求不在有效期限内,则返回未超过限额指示至所述应用服务器;若所述业务服务请求在有效期限内,再进一步判断所述客户端的请求次数是否超过最大限额数,若未超过最大限额数,返回未超过限额指示至所述应用服务器,若超过最大限额数,返回超过限额指示至所述应用服务器。
[0018]可选地,所述限额控制服务器独立设置,或者所述限额控制服务器设置在任一应用服务器上。
[0019]本发明实施例的有益效果是:本发明提供的限额控制方法及分布式限额控制系统,当分布式系统中的任一应用服务器收到客户端的业务服务请求时,通过向限额控制服务器发送限额控制请求,由所述限额控制服务器统一判断所述客户端的当前请求次数是否已经超过最大限额,并向应用服务器返回超过限额数指示或者未超过限额数指示,应用服务器根据限额控制服务器返回的是否超过限额指示,对客户端的业务服务请求或进行业务处理并返回处理结果或返回错误信息响应至所述客户端,从而达到对客户端用户限额进行精准控制的目的。本发明实施例对均匀接收客户端请求与随机接收客户端请求的分布式系统都适用。
【附图说明】
[0020]图1为本发明实施例提供的一种限额控制方法流程图;
[0021]图2为本发明实施例提供的另一种限额控制方法流程图;
[0022]图3为本发明实施例进行限额控制过程中的主要限额数据示意图;
[0023]图4为本发明实施例提供的一种分布式限额控制系统结构图;
[0024]图5为本发明实施例提供的一种分布式限额控制系统下进行限额控制的方法流程图。
【具体实施方式】
[0025]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0026]本发明实施例提供一种限额控制方法,应用于分布式系统中,如图1所示,为本发明实施例提供的一种限额控制方法流程图,所述方法包括:
[0027]步骤S120,应用服务器接收客户端发送的业务服务请求,向限额控制服务器发送限额控制请求。
[0028]分布式系统中一般有多个应用服务器,客户端向任一应用服务器发送业务服务请求,其中任一应用服务器执行的流程都是一样的;该任一应用服务器接收客户端发送的业务服务请求后,根据所述业务服务请求生成限额控制请求。
[0029]步骤S121,限额控制服务器根据所述限额控制请求判断所述业务服务请求是否为所述客户端的首次业务服务请求。
[0030]步骤S122,如果是首次业务服务请求,则返回未超过限额指示至所述应用服务器。
[0031]步骤S123,如果不是首次业务服务请求,进一步判断所述业务服务请求是否在有效期限内。
[0032]步骤S124,若所述业务服务请求不在有效期限内,则返回未超过限额指示至所述应用服务器。
[0033]步骤S125,若所述业务服务请求在有效期限内,再进一步判断所述客户端的请求次数是否超过最大限额数。
[0034]步骤S126,若未超过最大限
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1