一种多维度集中流量的控制方法及系统技术方案

技术编号:24040867 阅读:26 留言:0更新日期:2020-05-07 03:21
本发明专利技术公开了一种多维度集中流量的控制方法及系统,其中,该方法包括:接收服务调用方发起的请求;根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给请求;将分配到令牌后的请求转发到服务提供方的消息队列上进行排队;当请求排队结束后,判断请求是否有访问服务提供方的令牌;在有令牌的情况下,将请求转发至服务提供方,并在收到服务提供方的返回信息时,释放令牌。该方法及系统利用集中流量控制结合多维度控制相互组合,实现精准的流量控制,能够有效地防止超过系统负荷的并发访问,保证系统的运行稳定;并且还通过建立独立虚拟通道,使流量控制过程中各系统之间完全隔离,避免相互影响,进一步提高了系统运行的稳定性。

A control method and system of multi-dimensional centralized traffic

【技术实现步骤摘要】
一种多维度集中流量的控制方法及系统
本专利技术涉及流量控制
,尤指一种多维度集中流量的控制方法及系统,用于企业应用集成的流量控制。
技术介绍
流量控制是指在资源有限的情况下,当资源成为瓶颈时,采取某种措施限制访问请求数。目前,最常用的是令牌桶算法;令牌桶算法是指请求进来时,从令牌桶中拿走一个令牌,只有携带令牌的请求才会被处理。如图1所示,为令牌桶原理示意图;令牌桶中的令牌按照一定的速率生成,因受令牌桶大小限制,在生成令牌时会判断令牌桶是否已满。这种机制,对于应用来说,只需要从桶中取令牌即可,与应用代码的耦合度低,并且当系统空闲时令牌桶可以积攒N倍于限流值的令牌来满足瞬时大流量的场景。但是,现有的令牌桶算法仅对调用方做了限流,而对系统本身及后端服务提供方均未作流量控制限制。这种算法没有应答机制,服务调用方只管拿令牌发送请求,令牌桶只要没满就按一定速率生成令牌,整个流程并不在意服务提供方是否可用。所以,在令牌充足时,服务提供方堵塞或其他情况不可用,服务调用方拿到令牌后仍不断向后端发送请求,可能导致服务提供方系统完全瘫痪。因此,亟需一种能够协调服务调用方与服务提供方的流量控制方案。
技术实现思路
为解决上述问题,本专利技术提出了一种多维度集中流量的控制方法及系统,该方法及系统可以对服务调用方、服务提供方及其它维度进行控制,通过队列机制使流量控制更加平滑,保证服务调用方系统及服务提供方系统的稳定运行。在本专利技术一实施例中,提出了一种多维度集中流量的控制方法,该方法包括:r>接收服务调用方发起的请求;根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给所述请求;将分配到令牌后的所述请求转发到服务提供方的消息队列上进行排队;当所述请求排队结束后,判断所述请求是否有访问服务提供方的令牌;在有令牌的情况下,将所述请求转发至所述服务提供方,并在收到所述服务提供方的返回信息时,释放所述令牌。可选的,该方法还包括:建立服务调用方与服务提供方之间的独立的虚拟通道,用于对相应的所述服务调用方与服务提供方进行流量控制。可选的,所述独立的虚拟通道包含独立的接入线程池、独立的接入流量控制模块、独立的队列处理模块、独立的接出流量控制模块及独立的接出线程池在内的独占资源。可选的,根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给所述请求,包括:利用所述接入流量控制模块,根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给所述请求;其中,所述流量控制维度包括:服务调用方、服务ID、服务提供方。可选的,当所述请求排队结束后,判断所述请求是否有访问服务提供方的令牌,包括:当所述请求排队结束后,由接出流量控制模块判断所述请求是否有访问服务提供方的令牌;其中,所述接出流量控制模块的流量控制维度包括:服务提供方。在本专利技术另一实施例中,还提出了一种多维度集中流量的控制系统,该系统包括:请求接收模块,用于通过接入服务线程池,接收服务调用方发起的请求;接入流量控制模块,用于根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给所述请求;队列处理模块,用于将分配到令牌后的所述请求转发到服务提供方的消息队列上进行排队;接出流量控制模块,用于在所述请求排队结束后,判断所述请求是否有访问服务提供方的令牌;请求发送模块,用于在有令牌的情况下,通过接出服务线程池,将所述请求转发至所述服务提供方,并在收到所述服务提供方的返回信息时,释放所述令牌。可选的,该系统包括独立的虚拟通道,用于对相应的所述服务调用方与服务提供方进行流量控制;其中,所述独立的虚拟通道包含独立的接入线程池、独立的接入流量控制模块、独立的队列处理模块、独立的接出流量控制模块及独立的接出线程池在内的独占资源。可选的,所述接入流量控制模块的流量控制维度包括:服务调用方、服务ID、服务提供方;所述接出流量控制模块的流量控制维度包括:服务提供方。在本专利技术另一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现多维度集中流量的控制方法。在本专利技术另一实施例中,还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现多维度集中流量的控制方法。本专利技术提出的多维度集中流量的控制方法及系统可以利用集中流量控制结合多维度控制相互组合,实现精准的流量控制,能够有效地防止超过系统负荷的并发访问,保证系统的运行稳定。该方法及系统还通过建立服务调用方及服务提供方之间的独立虚拟通道,提供独立的线程池、队列、流量控制等独占资源,使流量控制过程中各系统之间完全隔离,避免相互影响,进一步提高了系统运行的稳定性。附图说明图1是现有技术的令牌桶算法原理示意图。图2是本专利技术一实施例的多维度集中流量的控制方法流程图。图3是本专利技术一具体实施例的多维度流量控制架构示意图。图4是本专利技术一具体实施例的虚拟通道架构示意图。图5是本专利技术一实施例的多维度集中流量系统结构示意图。图6是本专利技术一实施例的计算机设备结构示意图。具体实施方式下面将参考若干示例性实施方式来描述本专利技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本专利技术,而并非以任何方式限制本专利技术的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本领域技术人员知道,本专利技术的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。根据本专利技术的实施方式,提出了一种多维度集中流量的控制方法及系;该方法及系统可以提供集中流量控制和服务调用方系统、服务提供方系统、服务接口、服务接口分组四个维度的相互组合,实现精准的流量控制;还基于虚拟通道,为系统提供独立的线程池、队列、流量控制等独占资源,在流量控制过程中完全隔离周边系统对该系统的影响,从而进一步提高该系统的运行稳定性。下面参考本专利技术的若干代表性实施方式,详细阐释本专利技术的原理和精神。图2是本专利技术一实施例的多维度集中流量的控制方法流程图。如图2所示,该方法还包括:步骤S1,接收服务调用方发起的请求;步骤S2,根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给所述请求;其中,所述流量控制维度包括:服务调用方、服务ID、服务提供方。步骤S3,将分配到令牌后的所述请求转发到服务提供方的消息队列上进行排队;步骤S4,当所述请求排队结束后,判断所述请求是否有访问服务提供方的令牌;在有令牌的情况下,执行步骤S5,将所述请求转发至所本文档来自技高网...

【技术保护点】
1.一种多维度集中流量的控制方法,其特征在于,该方法包括:/n接收服务调用方发起的请求;/n根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给所述请求;/n将分配到令牌后的所述请求转发到服务提供方的消息队列上进行排队;/n当所述请求排队结束后,判断所述请求是否有访问服务提供方的令牌;/n在有令牌的情况下,将所述请求转发至所述服务提供方,并在收到所述服务提供方的返回信息时,释放所述令牌。/n

【技术特征摘要】
1.一种多维度集中流量的控制方法,其特征在于,该方法包括:
接收服务调用方发起的请求;
根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给所述请求;
将分配到令牌后的所述请求转发到服务提供方的消息队列上进行排队;
当所述请求排队结束后,判断所述请求是否有访问服务提供方的令牌;
在有令牌的情况下,将所述请求转发至所述服务提供方,并在收到所述服务提供方的返回信息时,释放所述令牌。


2.根据权利要求1所述的多维度集中流量的控制方法,其特征在于,该方法还包括:
建立服务调用方与服务提供方之间的独立的虚拟通道,用于对相应的所述服务调用方与服务提供方进行流量控制。


3.根据权利要求2所述的多维度集中流量的控制方法,其特征在于,所述独立的虚拟通道包含独立的接入线程池、独立的接入流量控制模块、独立的队列处理模块、独立的接出流量控制模块及独立的接出线程池在内的独占资源。


4.根据权利要求3所述的多维度集中流量的控制方法,其特征在于,根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给所述请求,包括:
利用所述接入流量控制模块,根据设置的流量控制维度,从令牌桶中获取对应维度的令牌,并依次分配给所述请求;其中,所述流量控制维度包括:服务调用方、服务ID、服务提供方。


5.根据权利要求3所述的多维度集中流量的控制方法,其特征在于,当所述请求排队结束后,判断所述请求是否有访问服务提供方的令牌,包括:
当所述请求排队结束后,由所述接出流量控制模块判断所述请求是否有访问服务提供方的令牌;其中,所述接出流量控制...

【专利技术属性】
技术研发人员:余以志刘明辉胡彭勇
申请(专利权)人:上海浦东发展银行股份有限公司
类型:发明
国别省市:上海;31

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

1