CN108471385B - 一种针对分布式系统的流量控制方法及装置 - Google Patents
一种针对分布式系统的流量控制方法及装置 Download PDFInfo
- Publication number
- CN108471385B CN108471385B CN201710099256.6A CN201710099256A CN108471385B CN 108471385 B CN108471385 B CN 108471385B CN 201710099256 A CN201710099256 A CN 201710099256A CN 108471385 B CN108471385 B CN 108471385B
- Authority
- CN
- China
- Prior art keywords
- flow control
- service interface
- key value
- virtual machine
- requests
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000001514 detection method Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011217 control strategy Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种针对分布式系统的流量控制方法及装置,涉及互联网技术领域,能够缓减非高并发业务的受影响的问题。本发明包括:获取当前所运行的业务接口的键值,并读取指向业务接口的请求的数量,键值用于标识当前所运行的业务接口的业务级别;读取对应键值的虚拟机当前承担的请求数量和流控阀值,其中,对应键值的虚拟机用于处理指向业务接口的请求;当再次接收到指向业务接口的请求时,根据对应键值的虚拟机当前承担的请求的并发数量和流控阀值,检测是否对再次接收到的指向业务接口的请求执行流控过程;若否,则增加所记录的并发数量。本发明适用于高并发和非高并同时存在的场景下的流量控制。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种针对分布式系统的流量控制方法及装置。
背景技术
随着互联网技术的发展,在线购物平台在近几年呈现爆炸式增长,并逐渐成为了人民生活中的一种主要购物手段。各大在线购物平台的运营商也在不断优化平台性能,以便于承载更多了访问量。
促销、抢购等容易造成访问量峰值的高并发业务,往往都会极大得增加在线购物平台的运行负载,为了维持系统的稳定运行,目前都会进行流量控制。例如:通过分布式缓存系统来管理整个服务集群的流量控制。但是,采用分布式缓存系统的流控方式,系统内的交互过程较多,依赖集群系统内部的交互接口,因此对业务系统影响很大。一旦分布式缓存系统出现接口阻塞等问题,会直接影响非高并发业务的正常运行,最终影响正常的售量过程。
发明内容
本发明的实施例提供一种针对分布式系统的流量控制方法及装置,能够缓减非高并发业务的受影响的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供的方法,包括:
获取当前所运行的业务接口的键值,并读取指向所述业务接口的请求的数量,所述键值用于标识当前所运行的业务接口的业务级别;
读取对应所述键值的虚拟机当前承担的请求数量和流控阀值,其中,对应所述键值的虚拟机用于处理指向所述业务接口的请求;
根据对应所述键值的虚拟机当前承担的请求的并发数量和所述流控阀值,检测是否对再次接收到的所述指向所述业务接口的请求执行流控过程;
若否,则增加所记录的并发数量。
结合第一方面,在第一方面的第一种可能的实现方式中,对应所述键值的各个虚拟机的流控阀值等于1;
或者,对应所述键值的各个虚拟机的流控阀值等于一个正整数。
结合第一方面,在第一方面的第二种可能的实现方式中,对应所述键值的虚拟机的流控阀值,小于对应所述键值的虚拟机的数量值。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
根据所述指向所述业务接口的请求的数量,检测所述键值对应的业务接口是否为热点;
若是,则根据对应所述业务接口的热点通过率,拦截指向所述业务接口的请求中的一部分;
根据所述对应所述业务接口的热点通过率,检测是否对所述业务接口执行流量控制。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述根据对应所述业务接口的热点通过率,拦截指向所述业务接口的请求中的一部分,包括:
根据对应所述键值的虚拟机的数量和对应所述键值的各个虚拟机的流控阀值,确定所述业务接口的拦截数量;
按照所述拦截数量,拦截指向所述业务接口的请求。
结合第一方面的第三种可能的实现方式,在第五种可能的实现方式中,还包括:
获取为热点的业务接口的有效时长,并将所述有效时长分割为至少2个时间节点,其中,若超过所述有效时长,则业务接口失效为非热点;
根据当前的时间节点内的请求的通过数和流控数的比例,确定下一时间节点的热点通过率。
结合第一方面的第三种可能的实现方式,在第六种可能的实现方式中,还包括:
当一个业务接口作为有效的热点时,根据这一个业务接口的键值分配缓存,所述缓存用于存储指向这一个业务接口的请求;
当一个业务接口由有效的热点转换为非有效的热点时,删除针对这一个业务接口的键值所分配的缓存。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,还包括:
当判定所述一个业务接口作为有效的热点时,建立对应所述一个业务接口的键值的计时器;
当所述计时器超时时,判定所述一个业务接口转换为非有效的热点。
第二方面,本发明的实施例提供的装置,包括:
侦测模块,用于获取当前所运行的业务接口的键值,并读取指向所述业务接口的请求的数量,所述键值用于标识当前所运行的业务接口的业务级别;
读取模块,用于读取对应所述键值的虚拟机当前承担的请求数量和流控阀值,其中,对应所述键值的虚拟机用于处理指向所述业务接口的请求;
分析模块,用于根据对应所述键值的虚拟机当前承担的请求的并发数量和所述流控阀值,检测是否对再次接收到的所述指向所述业务接口的请求执行流控过程;若否,则增加所记录的并发数量。
结合第二方面,在第二方面的第一种可能的实现方式中,还包括:
热点管理模块,用于根据所述指向所述业务接口的请求的数量,检测所述键值对应的业务接口是否为热点;
第一层流控模块,用于根据对应所述业务接口的热点通过率,拦截指向所述业务接口的请求中的一部分;
第二层流控模块,用于根据所述对应所述业务接口的热点通过率,检测是否对所述业务接口执行流量控制。
其中,所述第一层流控模块,具体用于根据对应所述键值的虚拟机的数量和对应所述键值的各个虚拟机的流控阀值,确定所述业务接口的拦截数量,对应所述键值的虚拟机的流控阀值,小于对应所述键值的虚拟机的数量值;并按照所述拦截数量,拦截指向所述业务接口的请求。
结合第二方面,在第二方面的第二种可能的实现方式中,还包括:
通过率调整模块,用于获取为热点的业务接口的有效时长,并将所述有效时长分割为至少2个时间节点,其中,若超过所述有效时长,则业务接口失效为非热点;根据当前的时间节点内的请求的通过数和流控数的比例,确定下一时间节点的热点通过率。
本发明实施例提供的针对分布式系统的流量控制方法及装置,通过Jvm技术来实现分布式集群的流控效果,相对于分布式缓存系统的流控方式,采用Jvm集群进行流控,通过承载Jvm集群的设备执行流控过程,并行处理的请求由承载Jvm集群的设备集中处理,减少了系统内的交互过程,从而减少对于业务系统内部的交互接口的依赖,因此受到设备本身接口阻塞或者宕机等问题的影响较小,从而减少高并发业务和非高并发业务同时存在的业务场景中,缓减非高并发业务的受影响的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种可能的系统架构示意图;
图2为本发明实施例提供的方法流程示意图;
图3为本发明实施例提供的具体实例的流程示意图;
图4、图5、图6为本发明实施例提供的装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本实施例中的方法流程,具体可以在一种如图1所示的系统上执行,该系统包括:服务器和用户设备。其中,服务器主要用于:接收用户设备发送的请求,比如:智能手机向网站服务器发送的访问消息,并在较高负载情况下对接收到的请求进行流量控制处理。在本实施例中,请求包括:用于触发业务执行的请求消息、用于访问某个页面或者登陆网站的消息,或者其他用于用户设备向服务器发送的用于执行业务操作的“消息”、“报文”、“数据”或者“信息”,在本实施例中对于这些“消息”、“报文”、“数据”或者“信息”统称为“请求”。
本实施例中所揭示的服务器,具体可以是服务器、工作站、超级计算机等设备,或者是由多个服务器组成的一种用于数据处理的服务器集群系统。需要说明的是,在实际应用中,服务器和后台服务器通常可以集成在同一个服务器集群中,即通过同一个服务器集群同时承担服务器和后台服务器的功能,并用于执行本实施例所提供的流程。
在实际应用中,用户设备发送的请求主要由用户通过用户设备的输入设备比如:键盘、触摸屏、鼠标等输入用户设备;服务器可以向发布网页、登录界面等操作界面,以便于用户设备通过操作界面输入请求。
本实施例中所揭示的用户设备具体可以实做成单独一台装置,或整合于各种不同的媒体数据播放装置中,诸如机顶盒、移动电话、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)、多媒体播放器、数字摄影机、个人数字助理(personaldigital assistant,简称PDA)、移动上网装置(Mobile Internet Device,MID)或可穿戴式设备(Wearable Device)等。
本发明实施例提供一种针对分布式系统的流量控制方法,如图2所示,包括:
S01、获取当前所运行的业务接口的键值,并读取指向所述业务接口的请求的数量。
其中,用户设备向服务器上所运行的业务接口发送请求,比如:服务器为一种在线购物平台的服务器,用于运行并向用户设备展示平台的商品展示界面,则当前所运行的业务接口可以包括:用于接收用户设备发送的下单操作请求的接口,用于接收用户设备发送的搜索请求,或者用户设备发送的用于参与促销活动的请求等。
在实际应用中,服务器上当前所运行的一种业务接口可以由一个进程承载,一个进程可以包括多个线程,其中,可以在服务器上建立多个虚拟机,一个虚拟机分配的计算资源至少包括一个线程。具体的,可以由多个虚拟机同时承担一个业务接口的请求的接收工作,即由众多用户设备向服务器发送的海量请求(指向同一个业务接口的请求很多,可以称为海量请求),由对应业务接口的键值的多个虚拟机进行并行处理,其中,所述键值用于标识当前所运行的业务接口的业务级别,其中,业务接口下的业务级别可以按照具体的业务维度进行划分,例如:会员维度(如会员ID),商品维度(如商品编码)。
S02、读取对应所述键值的虚拟机当前承担的请求数量和流控阀值。
其中,对应所述键值的虚拟机用于处理指向所述业务接口的请求。当前承担的请求数量可以理解为对应所述键值的所有虚拟机承担的请求的总数量。流控阀值可以理解为单台虚拟机的流控阀值。例如:如图3所示的,可以采用Jvm(Java Virtual Machine,Java虚拟机)进行分散缓存,多个Jvm的缓存共同管理整个业务集群的流量控制,相对于分布式缓存系统的流控方式,Jvm分散缓存的流控方式,具有性能高、响应快、对服务集群压力小的特点。由于单台Jvm的流控阀值为1,例如:针对服务集群数特大而允许访问请求数极较小的分布式集群部署的场景中,Jvm集群数为100,单台Jvm流控阀值为1,那么整个Jvm集群的允许并发数将达到100。其中,Jvm集群可以理解为运行在服务器上的虚拟机的集合。
S03、根据对应所述键值的虚拟机当前承担的请求的并发数量和所述流控阀值,检测是否对再次接收到的所述指向所述业务接口的请求执行流控过程。
若否,则增加所记录的并发数量。若是,则在指向所述业务接口的请求被业务系统处理后减少所记录的并发数量。其中,增加所记录的并发数量,当后续接收到指向所述业务接口的请求时,基于所累计增加的并发数量,检测是否对再次接收到的所述指向所述业务接口的请求执行流控过程。例如:若在接收到最新的指向所述业务接口的请求时,判定不执行流控过程则所累计的业务并发数量+1,若不执行流控过程且所述最新的指向所述业务接口的请求被业务系统处理,则业务并发数量-1。
在本实施例中,本方案中所提及的流控策略,具体可以采取两种模式:一种是,对应所述键值的各个虚拟机的流控阀值等于1,或者,对应所述键值的各个虚拟机的流控阀值等于一个正整数,比如:针对流控阀值为大于等于1的正整数配置(即业务集群处理能力>=Jvm集群数),举例来说:第一种模式可以采用常用的响应模式,即根据单台Jvm的当前业务并发数与流控阀值的比较来判断请求处理或被流控。例如:可配流控阀值=1,当请求时判断Jvm当前累计业务并发数是否达到流控阀值:若未达到流控阀值则该请求可处理,同时增加累计业务并发数,在业务处理结束后释放累计值(累计业务并发数—操作)。若达到流控阀值则该请求被流控。
另一种是,对应所述键值的虚拟机的流控阀值,小于对应所述键值的虚拟机的数量值,比如:以及针对流控率为0-1任意值的配置(即业务集群处理能力<Jvm集群数),即在逻辑层面将对应所述键值的各个虚拟机的流控阀值大于0且小于1,从而使得对应所述键值的虚拟机集群能够并行处理的总流量数量,小于对应所述键值的虚拟机的数量值,而在实际应用中,即为虚拟机集群中被同时使用的虚拟机始终小于虚拟机的总数。又由于并行处理的消息数很高,而对于单条消息的处理耗时很小,因此在一定的时间段内,集群中的每一个虚拟机真正出现空闲的时间很短。虽然理论上,最优的资源利用方案是按照真实负载情况匹配相应数量的虚拟机,但在实际应用中,虚拟机的建立、注销都需要消耗时间,并且需要对系统资源进行调配、分割,尤其是在高并发量的情况下,需要动态地建立、注销大量的虚拟机,这些都会造成很大的系统延时,以及降低系统的稳定性。同时,在大型的在线抢购、促销活动中,用户发送的指向所述业务接口的请求,往往都是用于抢购的请求消息,并且通常都存在大量的重复性发送的情况,而这些消息请求本身的重要性并不高,甚至其中大部分消息本身就是需要按照一定的概率被舍弃的,因此,针对大型的在线抢购、促销活动等应用场景,采用本实施例能够在保障系统的稳定性和延时性能的同时,满足业务接口的业务需求(比如:使得在线抢购正常进行)。
本发明实施例提供的针对分布式系统的流量控制方法,通过Jvm技术来实现分布式集群的流控效果,相对于分布式缓存系统的流控方式,采用Jvm集群进行流控,通过承载Jvm集群的设备执行流控过程,并行处理的请求由承载Jvm集群的设备集中处理,减少了系统内的交互过程,从而减少对于业务系统内部的交互接口的依赖,因此受到设备本身接口阻塞或者宕机等问题的影响较小,从而减少高并发业务和非高并发业务同时存在的业务场景中,缓减非高并发业务的受影响的问题。
在本实施中,针对“对应所述键值的虚拟机的流控阀值,小于对应所述键值的虚拟机的数量值”的情况,还提供一种结合业务热点判断的流控模式,从而更好地应用在大型促销活动、业务系统经常出现不规则的峰值负载的场景下。基于上述流程,还包括:
S11、根据所述指向所述业务接口的请求的数量,检测所述键值对应的业务接口是否为热点。
其中,判定所述一个业务接口是否作为热点,可以检测单位时间指向所述业务接口的请求是否达到流控数值,若是则判定该业务接口为热点。
其中,当判定所述一个业务接口作为有效的热点时,建立对应所述一个业务接口的键值的计时器。当所述计时器超时时,判定所述一个业务接口转换为非有效的热点。
在本实施例中,当一个业务接口作为有效的热点时,根据这一个业务接口的键值分配缓存。当一个业务接口由有效的热点转换为非有效的热点时,删除针对这一个业务接口的键值所分配的缓存。在本实施例中,所述缓存可以是预先分配给Jvm的,并由Jvm在用于存储指向业务接口的请求,本实施例中的流控过程所针对的请求即为存储在缓存内的请求。
S12、若是,则根据对应所述业务接口的热点通过率,拦截指向所述业务接口的请求中的一部分。
例如:根据对应所述键值的虚拟机的数量和对应所述键值的各个虚拟机的流控阀值,确定所述业务接口的拦截数量。
按照所述拦截数量,拦截指向所述业务接口的请求。
举例来说:在实际使用场景中,对于Jvm集群来说,会出现所允许的请求并发数可能为50或者更小的情况,因此还提供一种单台Jvm可控的最小力度小于1的方案,采用随机率+滑窗模式双层流程来处理。即可以先通过Java随机函数产生的随机值与可配流控率来做比较,例如:基于如图3所示的信息交互过程,假设Jvm集群接收到总共100个请求,通过Java随机函数针对100个请求分别生成随机值,所生成的随机值在大于0且小于1,其中所采用的Java随机函数生成的随机值,在理论统计上均匀分布在0至1之间。若可配流控率为0.8,则随机值在0至0.2之间的请求可以被通过,随机值在0.2至1之间的请求被拦截,则理论上100个请求会被拦截80个,其它20个请求将会通过第一层流控,通过第一层流控的请求将进行第二次滑窗式流控:单元时间内允许的最大业务并发数,例如:Jvm集群的TPS(TransactionsPerSecond,系统吞吐量-是网络协议层的指标,指一秒内成功完成的事务数)能力为10,Jvm集群数为100,那么单台Jvm处理能力要求为0.1,实际应用可以换算成单位时长内的单台Jvm允许的请求数(通过乘以单位时长,换算成整数),比如:要求10s内单台Jvm允许的请求数=1。从而在大量并发场景下对第一层未拦截到的请求做进一步流控。
S13、根据所述对应所述业务接口的热点通过率,检测是否对所述业务接口执行流量控制。
在本实施例中,通过对应所述业务接口的热点通过率来拦截大量的高并发请求(即第一层流控),再通过热点算法的请求将继续第二层流控,比如:当前正在执行的业务数是否大于等于预设的阀值,所大于等于则执行流量控制。其中,针对热点的用于流控判定的阀值与非热点可以相互独立配置,即通过热点的划分,使得高并发业务和非高并发业务的流控解耦,缓减并发业务的流控影响非高并发业务的情况。并且通过随机数值来突破单个最小流控阀值为1的限制,从而使得Jvm集群在单位时间内采用更小的集群允许并发数,使得集群允许并发数不再受到单个Jvm的可控的最小力度的限制,实现更灵活的流控效果。
进一步的,本实施例中的热点通过率可以通过单位时间T内(T可配置)的业务通过数及流控数的比例来动态计算,在当前T失效时会将当前T内得到的通过率作为下一个单位时间T的热点通过率来流控,从而实现随时间的推移动态更新热点通过率,例如,还包括了:
获取为热点的业务接口的有效时长,并将所述有效时长分割为至少2个时间节点。其中,若超过所述有效时长,则业务接口失效为非热点。例如:计时器的有效时长为10分钟,平均分割出20个时间节点,每个时间节点为30秒。
根据当前的时间节点内的请求的通过数和流控数的比例,确定下一时间节点的热点通过率。
本发明实施例提供一种针对分布式系统的流量控制装置,如图4所示,包括:
侦测模块,用于获取当前所运行的业务接口的键值,并读取指向所述业务接口的请求的数量,所述键值用于标识当前所运行的业务接口的业务级别;
读取模块,用于读取对应所述键值的虚拟机当前承担的请求数量和流控阀值,其中,对应所述键值的虚拟机用于处理指向所述业务接口的请求;
分析模块,用于根据对应所述键值的虚拟机当前承担的请求的并发数量和所述流控阀值,检测是否对再次接收到的所述指向所述业务接口的请求执行流控过程;若否,则增加所记录的并发数量。
本发明实施例提供的针对分布式系统的流量控制装置,通过Jvm技术来实现分布式集群的流控效果,相对于分布式缓存系统的流控方式,采用Jvm集群进行流控,通过承载Jvm集群的设备执行流控过程,并行处理的请求由承载Jvm集群的设备集中处理,减少了系统内的交互过程,从而减少对于业务系统内部的交互接口的依赖,因此受到设备本身接口阻塞或者宕机等问题的影响较小,从而减少高并发业务和非高并发业务同时存在的业务场景中,缓减非高并发业务的受影响的问题。
进一步的,如图5所示,针对分布式系统的流量控制装置还包括:
热点管理模块,用于根据所述指向所述业务接口的请求的数量,检测所述键值对应的业务接口是否为热点;
第一层流控模块,用于根据对应所述业务接口的热点通过率,拦截指向所述业务接口的请求中的一部分;
第二层流控模块,用于根据所述对应所述业务接口的热点通过率,检测是否对所述业务接口执行流量控制。
其中,所述第一层流控模块,具体用于根据对应所述键值的虚拟机的数量和对应所述键值的各个虚拟机的流控阀值,确定所述业务接口的拦截数量,对应所述键值的虚拟机的流控阀值,小于对应所述键值的虚拟机的数量值;并按照所述拦截数量,拦截指向所述业务接口的请求。
可选的,如图6所示,针对分布式系统的流量控制装置,还包括:
通过率调整模块,用于获取为热点的业务接口的有效时长,并将所述有效时长分割为至少2个时间节点,其中,若超过所述有效时长,则业务接口失效为非热点;根据当前的时间节点内的请求的通过数和流控数的比例,确定下一时间节点的热点通过率。
在本实施例中,通过对应所述业务接口的热点通过率来拦截大量的高并发请求(即第一层流控),再通过热点算法的请求将继续第二层流控,比如:当前正在执行的业务数是否大于等于预设的阀值,所大于等于则执行流量控制。其中,针对热点的用于流控判定的阀值与非热点可以相互独立配置,即通过热点的划分,使得高并发业务和非高并发业务的流控解耦,缓减并发业务的流控影响非高并发业务的情况。并且通过随机数值来突破单个最小流控阀值为1的限制,从而使得Jvm集群在单位时间内采用更小的集群允许并发数,使得集群允许并发数不再受到单个Jvm的可控的最小力度的限制,实现更灵活的流控效果。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.一种针对分布式系统的流量控制方法,其特征在于,包括:
获取当前所运行的业务接口的键值,并读取指向所述业务接口的请求的数量,所述键值用于标识当前所运行的业务接口的业务级别;
读取对应所述键值的虚拟机当前承担的请求数量和流控阈值,其中,对应所述键值的虚拟机用于处理指向所述业务接口的请求;
根据对应所述键值的虚拟机当前承担的请求的并发数量和所述流控阈值,检测是否对再次接收到的所述指向所述业务接口的请求执行流控过程;
若否,则增加所记录的并发数量;
对应所述键值的虚拟机的流控阈值,小于对应所述键值的虚拟机的数量值;
还包括:根据所述指向所述业务接口的请求的数量,检测所述键值对应的业务接口是否为热点;若是,则根据对应所述业务接口的热点通过率,拦截指向所述业务接口的请求中的一部分;根据所述对应所述业务接口的热点通过率,检测是否对所述业务接口执行流量控制。
2.根据权利要求1所述的方法,其特征在于,对应所述键值的各个虚拟机的流控阈值等于1;
或者,对应所述键值的各个虚拟机的流控阈值等于一个正整数。
3.根据权利要求1所述的方法,其特征在于,所述根据对应所述业务接口的热点通过率,拦截指向所述业务接口的请求中的一部分,包括:
根据对应所述键值的虚拟机的数量和对应所述键值的各个虚拟机的流控阈值 ,确定所述业务接口的拦截数量;
按照所述拦截数量,拦截指向所述业务接口的请求。
4.根据权利要求1所述的方法,其特征在于,还包括:
获取为热点的业务接口的有效时长,并将所述有效时长分割为至少2个时间节点,其中,若超过所述有效时长,则业务接口失效为非热点;
根据当前的时间节点内的请求的通过数和流控数的比例,确定下一时间节点的热点通过率。
5.根据权利要求1所述的方法,其特征在于,还包括:
当一个业务接口作为有效的热点时,根据这一个业务接口的键值分配缓存,所述缓存用于存储指向这一个业务接口的请求;
当一个业务接口由有效的热点转换为非有效的热点时,删除针对这一个业务接口的键值所分配的缓存。
6.根据权利要求5所述的方法,其特征在于,还包括:
当判定所述一个业务接口作为有效的热点时,建立对应所述一个业务接口的键值的计时器;
当所述计时器超时时,判定所述一个业务接口转换为非有效的热点。
7.一种针对分布式系统的流量控制装置,其特征在于,包括:
侦测模块,用于获取当前所运行的业务接口的键值,并读取指向所述业务接口的请求的数量,所述键值用于标识当前所运行的业务接口的业务级别;
读取模块,用于读取对应所述键值的虚拟机当前承担的请求数量和流控阈值,其中,对应所述键值的虚拟机用于处理指向所述业务接口的请求;
分析模块,用于根据对应所述键值的虚拟机当前承担的请求的并发数量和所述流控阈值,检测是否对再次接收到的所述指向所述业务接口的请求执行流控过程;若否,则增加所记录的并发数量;
还包括:
热点管理模块,用于根据所述指向所述业务接口的请求的数量,检测所述键值对应的业务接口是否为热点;
第一层流控模块,用于根据对应所述业务接口的热点通过率,拦截指向所述业务接口的请求中的一部分;
第二层流控模块,用于根据所述对应所述业务接口的热点通过率,检测是否对所述业务接口执行流量控制;
其中,所述第一层流控模块,具体用于根据对应所述键值的虚拟机的数量和对应所述键值的各个虚拟机的流控阈值,确定所述业务接口的拦截数量,对应所述键值的虚拟机的流控阈值,小于对应所述键值的虚拟机的数量值;并按照所述拦截数量,拦截指向所述业务接口的请求。
8.根据权利要求7所述的装置,其特征在于,还包括:
通过率调整模块,用于获取为热点的业务接口的有效时长,并将所述有效时长分割为至少2个时间节点,其中,若超过所述有效时长,则业务接口失效为非热点;根据当前的时间节点内的请求的通过数和流控数的比例,确定下一时间节点的热点通过率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710099256.6A CN108471385B (zh) | 2017-02-23 | 2017-02-23 | 一种针对分布式系统的流量控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710099256.6A CN108471385B (zh) | 2017-02-23 | 2017-02-23 | 一种针对分布式系统的流量控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108471385A CN108471385A (zh) | 2018-08-31 |
CN108471385B true CN108471385B (zh) | 2021-12-10 |
Family
ID=63266686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710099256.6A Active CN108471385B (zh) | 2017-02-23 | 2017-02-23 | 一种针对分布式系统的流量控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108471385B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474820B (zh) * | 2019-07-17 | 2023-10-10 | 创新先进技术有限公司 | 流量回放方法、装置、电子设备 |
CN112749174B (zh) * | 2019-10-30 | 2024-05-10 | 中国移动通信集团安徽有限公司 | 高并发处理方法、装置、处理设备及计算机存储介质 |
CN111008157B (zh) * | 2019-11-29 | 2022-02-18 | 北京浪潮数据技术有限公司 | 存储系统写缓存数据下发方法及相关组件 |
CN111756644B (zh) * | 2020-06-30 | 2023-04-07 | 深圳壹账通智能科技有限公司 | 热点限流方法、系统、设备及存储介质 |
CN116489090B (zh) * | 2023-06-16 | 2023-10-24 | 北京百度网讯科技有限公司 | 流量控制方法、装置、系统、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741690A (zh) * | 2008-11-11 | 2010-06-16 | 华为软件技术有限公司 | 一种业务接口流量的控制方法及网关 |
CN101867511A (zh) * | 2009-04-20 | 2010-10-20 | 华为技术有限公司 | 流控帧发送方法、相关设备及系统 |
CN101938396A (zh) * | 2009-06-30 | 2011-01-05 | 华为技术有限公司 | 数据流控制方法及装置 |
CN103532866A (zh) * | 2013-10-28 | 2014-01-22 | 曙光云计算技术有限公司 | 虚拟机的流量控制方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914803B2 (en) * | 2011-08-25 | 2014-12-16 | Red Hat Israel, Ltd. | Flow control-based virtual machine request queuing |
-
2017
- 2017-02-23 CN CN201710099256.6A patent/CN108471385B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741690A (zh) * | 2008-11-11 | 2010-06-16 | 华为软件技术有限公司 | 一种业务接口流量的控制方法及网关 |
CN101867511A (zh) * | 2009-04-20 | 2010-10-20 | 华为技术有限公司 | 流控帧发送方法、相关设备及系统 |
CN101938396A (zh) * | 2009-06-30 | 2011-01-05 | 华为技术有限公司 | 数据流控制方法及装置 |
CN103532866A (zh) * | 2013-10-28 | 2014-01-22 | 曙光云计算技术有限公司 | 虚拟机的流量控制方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108471385A (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108471385B (zh) | 一种针对分布式系统的流量控制方法及装置 | |
CN108512768B (zh) | 一种访问量的控制方法及装置 | |
US11711446B2 (en) | Systems and methods for utilizing unused network capacity for prefetch requests | |
US10127086B2 (en) | Dynamic management of data stream processing | |
US20200328984A1 (en) | Method and apparatus for allocating resource | |
CN107592345B (zh) | 交易限流装置、方法及交易系统 | |
US8191068B2 (en) | Resource management system, resource information providing method and program | |
US9292448B2 (en) | Dynamic sizing of memory caches | |
US7437460B2 (en) | Service placement for enforcing performance and availability levels in a multi-node system | |
US9405589B2 (en) | System and method of optimization of in-memory data grid placement | |
CN112953945B (zh) | 访问请求处理方法和系统 | |
CN106230997B (zh) | 一种资源调度方法和装置 | |
CN107070709B (zh) | 一种基于底层numa感知的nfv实现方法 | |
CN106899643A (zh) | 一种用户日志存储方法及设备 | |
CN109981723B (zh) | 基于深度强化学习的文件缓存处理系统及方法、通信系统 | |
CN101753380A (zh) | 监控存储器消耗 | |
CN112600761A (zh) | 一种资源分配的方法、装置及存储介质 | |
CN106130960A (zh) | 盗号行为的判断系统、负载调度方法和装置 | |
CN112764948A (zh) | 数据发送方法、数据发送装置、计算机设备及存储介质 | |
Alsubhi et al. | MEACC: an energy-efficient framework for smart devices using cloud computing systems | |
CN104753922A (zh) | 用于预加载的方法、服务端、客户端及系统 | |
CN113905091B (zh) | 用于对访问请求进行处理的方法及装置 | |
CN109150746B (zh) | 一种全局流控方法及装置 | |
EP2622499B1 (en) | Techniques to support large numbers of subscribers to a real-time event | |
CN113765969A (zh) | 一种流量控制方法和装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 210000, 1-5 story, Jinshan building, 8 Shanxi Road, Nanjing, Jiangsu. Applicant after: SUNING.COM Co.,Ltd. Address before: 210042 Suning Headquarters, No. 1 Suning Avenue, Xuanwu District, Nanjing City, Jiangsu Province Applicant before: SUNING COMMERCE GROUP Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |