[发明专利]一种集群环境下的全局流控方法及装置有效
申请号: | 201910248533.4 | 申请日: | 2019-03-29 |
公开(公告)号: | CN110048907B | 公开(公告)日: | 2022-12-30 |
发明(设计)人: | 刘发亮;叶国华;司孝波;姜甲东 | 申请(专利权)人: | 苏宁易购集团股份有限公司 |
主分类号: | H04L43/16 | 分类号: | H04L43/16;H04L43/08;H04L67/568;H04L47/10 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 苏一帜 |
地址: | 210042 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 集群 环境 全局 方法 装置 | ||
本发明实施例公开了一种集群环境下的全局流控方法及装置,涉及大数据技术领域,能够实现流控的方案且对原业务代码无侵入。本发明包括:接收到业务请求后,确定所述业务请求指向的业务方法;检测是否存在所述业务方法关联的注解;若存在所述关联的注解,则检测计数器的值是否超过阈值;若所述计数器的值没有超过所述阈值,则执行所述业务方法并将所述计数器的值加1。所述计数器的值存于redis中,所述redis属于业务集群,所述业务集群用于执行至少两种业务方法,在所述业务方法执行完毕时,将所述计数器的值减1。本发明适用于分布式系统的全局流控。
技术领域
本发明涉及大数据技术领域,尤其涉及一种集群环境下的全局流控方法及装置。
背景技术
随着电子商务行业的快速发展,很多在线使用场景的业务量逐步增大,变相的促进了大数据技术的进步。
目前电商平台的运营商,大多是采用单个jvm(Java Virtual Machine,虚拟机)的流控方案,流控的粒度和灵活性难以进一步提高,当遇到很多促销活动时,就会出现某些热门商品访问量大增而占用较多资源导致其他商品不能正常被购买,或者出现由于集群机器规模突然增多而和数据库承载能力不匹配而导致数据库压力过大等问题。
在几年前这些问题还不突出,但当前的促销活动的规模越来越大,业务形式也越来越复杂,这些问题一旦出现,往往每秒就会造成巨大的销售额损失,因此如何进一步优化全局流控的方案,成为目前电商领域中的一个研究方向。
发明内容
本发明的实施例提供一种集群环境下的全局流控方法及装置,能够实现流控的方案且对原业务代码无侵入。
为达到上述目的,本发明的实施例采用如下技术方案:
接收到业务请求后,确定所述业务请求指向的业务方法;检测是否存在所述业务方法关联的注解;若存在所述关联的注解,则检测计数器的值是否超过阈值;若所述计数器的值没有超过所述阈值,则执行所述业务方法并将所述计数器的值加1。其中,所述业务方法表示执行具体业务逻辑的方法,所述计数器的值存于redis中,所述redis属于业务集群,所述业务集群用于执行至少两种业务方法,在所述业务方法执行完毕时,将所述计数器的值减1。
所述业务方法关联的注解,用于定义存放在redis中的key和所述业务方法被流控时的返回值;若所述注解中不配置任何参数,则使用默认的回调类,所述默认回调类存入redis的Key为:注解的类名和业务方法名。
本实施例中,通过设计key值,利用全局redis存放计数器,并利用全局redis的高吞吐的特性,实现高频率的刷新计数器,从而实现对于各个在线业务的监控,并可以利用计数器的数值实现灵活的流控。以及,本实施例中的通过注解配置来实现流控的方案,对原业务代码无侵入,不需要对原有的业务流程、代码、接口等等进行任何改动,从而最大化地降低了改造成本和改造工作量,对于原有的在线业务的稳定性无任何影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的系统架构示意图;
图2为本发明实施例提供的方法流程示意图;
图3为本发明实施例提供的具体事例示意图;
图4为本发明实施例提供的装置结构示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏宁易购集团股份有限公司,未经苏宁易购集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910248533.4/2.html,转载请声明来源钻瓜专利网。