[发明专利]一种流量控制方法和装置有效
申请号: | 201310088303.9 | 申请日: | 2013-03-19 |
公开(公告)号: | CN104065586B | 公开(公告)日: | 2017-10-24 |
发明(设计)人: | 杨成虎 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L12/811 | 分类号: | H04L12/811 |
代理公司: | 北京安信方达知识产权代理有限公司11262 | 代理人: | 解婷婷,栗若木 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 流量 控制 方法 装置 | ||
技术领域
本发明涉及计算机网络领域,具体涉及一种流量控制方法和装置。
背景技术
C/S(Client/Server,客户端/服务端)模型的服务程序一般存在流量隐患。当流量过载时可能会影响正常服务。同时,在云计算平台上,流量控制也是重要的功能之一,不同的流量权限,不同的计费价格。
已知的一种实现方案为:在服务端统计流量后再拒绝请求;已知的另一种实现方案为:在服务端流量超限后,将用户的请求重定向到备用服务器。上述第一种方案存在以下问题1和问题2,上述第二种方案存在以下问题1和问题3:
1、虽然服务端不实际处理请求,但由于请求已经到达服务端,网络资源已经消耗,且解析包等操作,仍然消耗大量资源;
2、服务端直接拒绝请求,此时全部请求都可能失败,无过渡,实现上比较粗暴,对应用的损害较大;
3、只适用于可预知流量大小的场景,一方面设置备用服务器成本较高,另一方面备用服务器也可能流量过载。
发明内容
本发明要解决的技术问题是提供一种流量控制方法和装置,避免带宽占用,减少网络资源消耗。
为解决上述技术问题,本发明提供了一种流量控制方法,应用于客户端设备,所述方法包括:
接收并保存服务器端发送的流量状态包,所述流量状态包包括第一状态,所述第一状态用于指示客户端设备提高流控力度;
基于所述第一状态的指示提高本地流控阈值;
在客户端设备发送请求前,根据当前本地流控阈值判断是否允许发送所述请求。
进一步地,所述方法还包括:接收并保存服务器端发送的流量状态包,所述流量状态包包括第二状态,所述第二状态用于指示客户端设备维持流控力度;基于所述第二状态的指示保持当前本地流控阈值不变。
进一步地,所述方法还包括:定期向服务器端发送流量状态查询请求,当查询所述服务器端当前流量状态为第三状态时,所述第三状态用于指示客户端设备降低流控力度,基于所述第三状态的指示降低当前本地流控阈值。
进一步地,所述根据当前本地流控阈值判断是否允许发送所述请求,包括:在本地流控阈值的取值范围内生成一随机数,判断所述随机数是否大于当前本地流控阈值,如果大于则允许发送所述请求,如果小于则不允许发送所述请求。
为解决上述技术问题,本发明还提供了一种流量控制方法,应用于服务器端,所述方法包括:
统计当前流量,判断服务器端当前流量高于第一警戒值时,更新当前流量状态为第一状态,所述第一状态用于指示客户端设备提高流控力度,向客户端设备发送包括第一状态的流量状态包。
进一步地,所述方法还包括:判断服务器端的流量从高于第一警戒值降低到低于第一警戒值、高于第二警戒值时,更新当前流量状态为第二状态,所述第二状态用于指示客户端设备维持流控力度,向客户端设备发送包括第二状态的流量状态包,所述第一警戒值大于所述第二警戒值。
进一步地,所述方法还包括:判断服务器端流量低于第二警戒值,或者从低于第二警戒值升高到低于第一警戒值时,更新当前流量状态为第三状态,所述第三状态用于指示客户端设备降低流控力度。
为解决上述技术问题,本发明还提供了一种流量控制装置,应用于客户端设备,所述流量控制装置包括接收模块、流控阈值调整模块和流控模块,其中:
所述接收模块,用于接收并保存服务器端发送的流量状态包,所述流量状态包包括第一状态,所述第一状态用于指示客户端设备提高流控力度;
所述流控阈值调整模块,用于基于所述第一状态的指示提高本地流控阈值;
所述流控模块,用于在客户端设备发送请求前,根据当前本地流控阈值判断是否允许发送所述请求。
进一步地,所述接收模块,还用于接收并保存服务器端发送的流量状态包,所述流量状态包包括第二状态,所述第二状态用于指示客户端设备维持流控力度;
所述流控阈值调整模块,还用于基于所述第二状态的指示保持当前本地流控阈值不变。
进一步地,所述流控阈值调整模块,还用于定期向服务器端发送流量状态查询请求,当查询所述服务器端当前流量状态为第三状态时,所述第三状态用于指示客户端设备降低流控力度,基于所述第三状态的指示降低当前本地流控阈值。
进一步地,所述流控模块根据当前本地流控阈值判断是否允许发送所述请求,包括:在本地流控阈值的取值范围内生成一随机数,判断所述随机数是否大于当前本地流控阈值,如果大于则允许发送所述请求,如果小于则不允许发送所述请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310088303.9/2.html,转载请声明来源钻瓜专利网。