分配流量的方法和装置制造方法及图纸

技术编号:19219602 阅读:22 留言:0更新日期:2018-10-20 08:09
本发明专利技术公开了一种分配流量的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取与待分配流量对应的请求;根据获取到的请求的顺序,依次将令牌队列中的令牌值分配给所述请求,确定所述请求的令牌值;基于预设配置,根据所述请求的令牌值将与该请求对应的待分配流量分配给端口;所述预设配置至少包括:待分配流量的端口、各个端口需求流量的占比。该实施方式能够按配置的比例精准分配流量,并且该实施方式是一种高并发快响应的精准分流方法,可以处理并发的多个请求使每批流量中有精准比例的流量进入不同的端口。

【技术实现步骤摘要】
分配流量的方法和装置
本专利技术涉及计算机
,尤其涉及一种分配流量的方法和装置。
技术介绍
负载分流是为了实现对流量分配的可控制,通过在流量入口架设分流器来实现。比如在网站入口处架设的反向代理,就可以作为负载均衡器来控制分流,把用户请求按策略分流到后端服务集群;分流的策略通常有:轮询机制、随机分配、哈希分配。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:对于目前分流技术中的轮询机制、随机分配、哈希分配等方式,都无法对流量进行精准控制、按比例进行分流。
技术实现思路
有鉴于此,本专利技术实施例提供一种分配流量的方法和装置,能够按配置的比例精准分配流量,并且该实施方式是一种高并发快响应的精准分流方法,可以处理并发的多个请求使每批流量中有精准比例的流量进入不同的端口。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种分配流量的方法,包括:获取与待分配流量对应的请求;根据获取到的请求的顺序,依次将令牌队列中的令牌值分配给所述请求,确定所述请求的令牌值;基于预设配置,根据所述请求的令牌值将与该请求对应的待分配流量分配给端口;所述预设配置至少包括:待分配流量的端口、各个端口需求流量的占比。可选地,在将令牌队列中的令牌值分配给所述请求之前,还包括:确认所述令牌队列非空;以及,在将所述令牌队列中的令牌值分配给所述请求之后,将已分配给请求的令牌值从所述令牌队列中删除;若确认所述令牌队列为空,生成所述令牌队列。可选地,所述预设配置还包括:令牌总个数;按如下方法生成所述令牌队列:根据所述预设配置中的令牌总个数确定所有令牌值;基于预设的随机算法将所有令牌值乱序存储,以得到的序列作为所述令牌队列。可选地,基于预设配置,根据所述请求的令牌值将与该请求对应的待分配流量分配给端口,包括:根据各个端口需求流量的占比和令牌总个数,确定各个端口对应的令牌值集合;判断所述请求的令牌值所对应的令牌值集合,将所述请求对应的待分配流量分配给该令牌值集合对应的端口。可选地,分配流量时,当待分配流量的端口发生变动,按如下方式更新所述预设配置:根据所述变动,将发生变动的端口从预设配置中移除,或将发生变动的端口加入预设配置;对所述预设配置中的端口重新确定其需求流量的占比。根据本专利技术实施例的再一个方面,提供了一种分配流量的装置,包括:获取请求模块,用于获取与待分配流量对应的请求;分配令牌模块,用于根据获取到的请求的顺序,依次将令牌队列中的令牌值分配给所述请求,确定所述请求的令牌值;分配流量模块,用于基于预设配置,根据所述请求的令牌值将与该请求对应的待分配流量分配给端口;所述预设配置至少包括:待分配流量的端口、各个端口需求流量的占比。可选地,所述分配令牌模块在将令牌队列中的令牌值分配给所述请求之前,还包括:确认所述令牌队列非空;以及,在将所述令牌队列中的令牌值分配给所述请求之后,将已分配给请求的令牌值从所述令牌队列中删除;若确认所述令牌队列为空,生成所述令牌队列。可选地,所述预设配置还包括:令牌总个数;所述分配令牌模块按如下方法生成所述令牌队列:根据所述预设配置中的令牌总个数确定所有令牌值;基于预设的随机算法将所有令牌值乱序存储,以得到的序列作为所述令牌队列。可选地,所述分配流量模块基于预设配置,根据所述请求的令牌值将与该请求对应的待分配流量分配给端口,包括:根据各个端口需求流量的占比和令牌总个数,确定各个端口对应的令牌值集合;判断所述请求的令牌值所对应的令牌值集合,将所述请求对应的待分配流量分配给该令牌值集合对应的端口。可选地,所述分配流量模块还用于,分配流量时,当待分配流量的端口发生变动,按如下方式更新所述预设配置:根据所述变动,将发生变动的端口从预设配置中移除,或将发生变动的端口加入预设配置;对所述预设配置中的端口重新确定其需求流量的占比。根据本专利技术实施例的另一个方面,提供了一种分配流量的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术提供的分配流量的方法。根据本专利技术实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术提供的分配流量的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用先确定与获取到的请求对应的令牌值、再根据令牌值所处的范围对流量按比例进行分配的技术手段,所以克服了现有技术中无法精准分配流量的技术问题,进而实现了能够按配置的比例实现精准负载分流的技术效果。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的一种分配流量的方法的主要流程的示意图;图2是根据本专利技术实施例的一种分配流量的装置的主要模块的示意图;图3是本专利技术实施例可以应用于其中的示例性系统架构图;图4是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本专利技术实施例的一种分配流量的方法的主要流程的示意图,如图1所示,包括:步骤S101、获取与待分配流量对应的请求;步骤S102、根据获取到的请求的顺序,依次将令牌队列中的令牌值分配给所述请求,确定所述请求的令牌值;步骤S103、基于预设配置,根据所述请求的令牌值将与该请求对应的待分配流量分配给端口;所述预设配置至少包括:待分配流量的端口、各个端口需求流量的占比。所述请求可以是由系统发起的对流量或数据进行分配的请求;一个请求可以对应一段流量或数据;对于一个请求,该请求返回的结果可以是确定将该请求对应的流量或数据分配到待分配流量的端口中的哪一个;所述端口可以是操作单元或后端入口。所述令牌队列可以是基于预设配置生成的;当有多个请求并行进入时,根据获取到的请求的顺序,依次将令牌队列中的令牌分配给所述请求,避免了同一时间段的多个请求获取同一个令牌值的情况,从而有效实现了分布式地分配流量;其中,可以使用乐观锁的方式实现只允许同一时段中多个请求中的一个获取到令牌值、其他请求排队等待的效果;依次将令牌队列中的令牌分配给请求,保障了线程安全,是使本专利技术中的方法能够可靠实现的前提;可以根据预设配置中各个端口需求流量的占比,确定不同的端口对应着的令牌值集合;不同请求的令牌值可以属于不同的端口对应着的令牌值集合中,用以指示将待分配流量分配到哪个具体的端口。本专利技术实施例先确定请求的令牌值、再确定令牌值所对应的端口,基于预设配置将该请求对应的待分配流量分配给该端口,实现了按预设配置中的比例分配流量的效果;即能够基于预设配置中的比例对流量进行精确的分配,将每批流量按配置好的比例分配到不同的端口。在一些实施例中,在将令牌队列中的令牌值分配给所述请求之前,还包括:确认所述令牌队列非空;以及,在将所述令牌队列中的令牌值分配给所述请求之后,将已分配给请求的令本文档来自技高网...

【技术保护点】
1.一种分配流量的方法,其特征在于,包括:获取与待分配流量对应的请求;根据获取到的请求的顺序,依次将令牌队列中的令牌值分配给所述请求,确定所述请求的令牌值;基于预设配置,根据所述请求的令牌值将与该请求对应的待分配流量分配给端口;所述预设配置至少包括:待分配流量的端口、各个端口需求流量的占比。

【技术特征摘要】
1.一种分配流量的方法,其特征在于,包括:获取与待分配流量对应的请求;根据获取到的请求的顺序,依次将令牌队列中的令牌值分配给所述请求,确定所述请求的令牌值;基于预设配置,根据所述请求的令牌值将与该请求对应的待分配流量分配给端口;所述预设配置至少包括:待分配流量的端口、各个端口需求流量的占比。2.根据权利要求1所述的方法,其特征在于,在将令牌队列中的令牌值分配给所述请求之前,还包括:确认所述令牌队列非空;以及,在将所述令牌队列中的令牌值分配给所述请求之后,将已分配给请求的令牌值从所述令牌队列中删除;若确认所述令牌队列为空,生成所述令牌队列。3.根据权利要求2所述的方法,其特征在于,所述预设配置还包括:令牌总个数;按如下方法生成所述令牌队列:根据所述预设配置中的令牌总个数确定所有令牌值;基于预设的随机算法将所有令牌值乱序存储,以得到的序列作为所述令牌队列。4.根据权利要求3所述的方法,其特征在于,基于预设配置,根据所述请求的令牌值将与该请求对应的待分配流量分配给端口,包括:根据各个端口需求流量的占比和令牌总个数,确定各个端口对应的令牌值集合;判断所述请求的令牌值所对应的令牌值集合,将所述请求对应的待分配流量分配给该令牌值集合对应的端口。5.根据权利要求4所述的方法,其特征在于还包括,分配流量时,当待分配流量的端口发生变动,按如下方式更新所述预设配置:根据所述变动,将发生变动的端口从预设配置中移除,或将发生变动的端口加入预设配置;对所述预设配置中的端口重新确定其需求流量的占比。6.一种分配流量的装置,其特征在于,包括:获取请求模块,用于获取与待分配流量对应的请求;分配令牌模块,用于根据获取到的请求的顺序,依次将令牌队列中的令牌值分配给所述请求,确定所述请求的令牌值;分配流量模块,用于基于预设配置,根...

【专利技术属性】
技术研发人员:马浩
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1