CN113225265A - 流量控制方法、装置、设备和计算机存储介质 - Google Patents
流量控制方法、装置、设备和计算机存储介质 Download PDFInfo
- Publication number
- CN113225265A CN113225265A CN202110470780.6A CN202110470780A CN113225265A CN 113225265 A CN113225265 A CN 113225265A CN 202110470780 A CN202110470780 A CN 202110470780A CN 113225265 A CN113225265 A CN 113225265A
- Authority
- CN
- China
- Prior art keywords
- computing resource
- level
- service request
- service
- request
- 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.)
- Granted
Links
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
- H04L47/215—Flow control; Congestion control using token-bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开公开了一种流量控制方法、装置、设备和计算机存储介质,涉及人工智能技术领域中的深度学习技术。应用于包含M个等级的计算资源,每个计算资源对应有至少N个队列,所述M为正整数,所述N为大于1的正整数;具体实现方案为:接收服务请求;确定所述服务请求适用的计算资源等级;依据所述服务请求的产品形式、应用形式以及服务等级中的至少一种,从所述计算资源等级对应的至少N个队列中确定对应的队列;将所述服务请求发送至确定的队列;其中,所述各队列被配置有权值,以便计算资源对对应的各队列按照权值进行轮询。本申请能够合理地实现流量控制,降低计算资源的浪费和部署成本。
Description
技术领域
本公开涉及计算机应用技术领域,尤其涉及人工智能技术领域中的深度学习技术。
背景技术
机器翻译是利用计算机将自然语言转换为另外一种自然语言的过程,是人工智能的重要目标,具有重要的科学研究价值。同时,机器翻译又具有重要的实用价值。随着经济全球化及互联网的飞速发展,机器翻译技术在促进政治、经济、文化交流以及人们的生产生活等方面起到越来越重要的作用。
随着机器翻译进入深度学习时代以来,翻译质量显著提升,但其来带的问题也是明显的。为了提供线上服务需要部署大量的计算资源,但随着翻译服务产品形式和应用形式具有多样性,各产品和应用形式都有着无法预期的流量上涨,给每个产品、每种应用形式采用独立部署计算资源的方式来获得产品、应用之间的隔离性,从而实现合理地流量控制,会带来极大的计算资源的浪费,且致使成本太高。
发明内容
有鉴于此,本公开提供了一种流量控制方法、装置、设备和计算机存储介质,以便于合理地实现流量控制,降低计算资源的浪费和部署成本。
根据本公开的第一方面,提供了一种流量控制方法,应用于包含M个等级的计算资源,每个计算资源对应有至少N个队列,所述M为正整数,所述N为大于1的正整数;该方法包括:
接收服务请求;
确定所述服务请求适用的计算资源等级;
依据所述服务请求的产品形式、应用形式以及服务等级中的至少一种,从所述计算资源等级对应的至少N个队列中确定对应的队列;
将所述服务请求发送至确定的队列;
其中,所述各队列被配置有权值,以便计算资源对对应的各队列按照权值进行轮询。
根据本公开的第二方面,提供了一种流量控制装置,应用于包含M个等级的计算资源,每个计算资源对应有至少N个队列,所述M为正整数,所述N为大于1的正整数;该装置包括:
请求接收单元,用于接收服务请求;
自适应限流单元,用于确定所述服务请求适用的计算资源等级;
多队列隔离单元,用于依据所述服务请求的产品形式、应用形式以及服务等级中的至少一种,从所述计算资源等级对应的至少N个队列中确定对应的队列;将所述服务请求发送至确定的队列;
其中,所述各队列被配置有权值,以便计算资源对对应的各队列按照权值进行轮询。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上所述的方法。
根据本公开的第五方面,一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开所基于的系统架构图;
图2为本公开实施例提供的一种流量控制方法的流程图;
图3为本公开实施例提供的基于令牌实现的流量控制方法流程图;
图4为本公开实施例提供的队列设置示意图;
图5为本公开实施例提供的熔断机制的方法流程图;
图6为本公开实施例提供的一个整体优选方式的实例图;
图7为本公开实施例提供的流量控制装置的结构示意图;
图8是用来实现本公开实施例的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了方便对本公开的理解,首先对本公开所基于的系统架构进行简单描述。如图1中所示,该系统架构可以包括终端设备、流量控制装置、队列和计算资源。
其中,流量控制装置、队列和计算资源位于服务器端。流量控制装置可以以中间件的形式存在。系统中可以包括M个等级的计算资源,M为正整数。图1中以3个等级的计算资源为例,计算资源1、2和3的等级由高至低。
每个计算资源对应有至少N个队列,N为大于1的正整数,图1中以每个等级的计算资源均对应N个队列为例。实际应用中,每个等级的计算资源对应的队列数量可以不同。
图1中示例性的示出了两个终端设备,终端设备为了获取服务,可以向服务器端发送服务请求。服务器端的流量控制装置采用本公开提供的方式进行流量控制,将服务请求发送至对应服务等级的某一个队列中,各级计算资源对其对应的队列进行轮询,读取服务请求并进行服务响应。
上述终端设备可以包括但不限于智能手机、平板电脑、智能音箱、智能电视、PC(Personal Computer,个人计算机)等等。终端设备可以通过网络与服务器端进行交互。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
计算资源可以是一个单一服务器,也可以是多个服务器构成的服务器群组,还可以是一个服务器上的一个或一组计算单元。应该理解,图1中的终端设备、队列、计算资源的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、队列和计算资源。
图2为本公开实施例提供的一种流量控制方法的流程图,该方法的执行主体为流量控制装置。如图2中所示,该方法可以包括以下步骤:
在201中,接收服务请求。
在202中,确定服务请求适用的计算资源等级。
在203中,依据服务请求的产品形式、应用形式以及服务等级中的至少一种,从计算资源等级对应的至少N个队列中确定对应的队列。
在204中,将服务请求发送至确定的队列;其中各队列被配置有权值,以便计算资源对对应的各队列按照权重进行轮询。
对于一种服务而言,其产品形式、应用形式可能多种多样,不同产品形式和应用形式可能对应不同的服务等级,为了分别进行流量控制,传统的方式会按照产品和应用形式进行计算资源的独立部署。这种方式虽然获得了绝对的物理隔离,但却带来了高昂的人力成本和计算资源成本。而本公开的上述实施例中,按照产品形式、应用形式以及服务器等级布设不同的队列,依据服务请求的产品形式、应用形式以及服务等级中的至少一种,确定对应的队列,以使得计算资源对对应的各队列按照权值进行轮询,这种方式通过队列实现了流量的软隔离。针对各等级的计算资源仅需要布设N个队列即可实现针对不同产品形式、应用形式和/服务等级的流量隔离控制,节约人力成本和计算资源成本。
本申请所涉及的服务可以是各种类型的服务,诸如地图查询服务、翻译服务、网页浏览服务等等。作为一种典型的服务场景,后续实施例中以翻译服务为例进行描述,此时对应的计算资源为翻译服务资源。下面分别对图2所示实施例中的各步骤进行详细描述。
首先对上述步骤202即“确定服务请求适用的计算资源等级”进行详细描述。
在本公开所涉及的系统架构中,可能存在多个计算资源等级。计算资源等级可以依据服务质量、处理速度等等进行划分。例如图1中所示存在3个计算资源:计算资源1为最高等级,服务质量高、处理速度慢;计算资源2为中间等级,服务质量中等、处理速度中等;计算资源3为最低等级,服务质量低、处理速度快。
接收到翻译请求后,作为一种可实现的方式,可以根据该翻译请求所请求翻译的文本长度来确定适用的计算资源等级。
对于翻译服务特别是在线翻译服务而言,通常翻译质量好的计算资源、翻译速度也慢;翻译质量低的计算资源通常翻译速度也有所提升。因此,需要考虑如何兼顾服务的翻译质量和可用性。经过大量评测后发现,对于长度较短的文本流量最高,并且在不同翻译质量的计算资源之间差异不明显;而对于长度较长的文本流量较低,且在不同翻译质量的计算资源之间差异明显。因此,可以将线上针对长文本的翻译请求优先分流至高等级的计算资源,而将线上针对短文本的翻译请求可以分流较低等级的计算资源。
具体地,可以确定翻译请求所请求翻译的文本长度,若文本长度大于或等于预设第一长度阈值,则从第一等级开始确定翻译请求适用的计算资源等级。若文本长度小于预设的第二长度阈值,则从第二等级开始确定翻译请求适用的计算资源等级;其中第一长度阈值大于或等于第二长度阈值,第一等级高于第二等级。
以图中所示架构为例,接收到翻译请求后,如果翻译请求所请求翻译的文本长度大于或等于150字节,则从计算资源1开始确定该翻译请求适用的计算资源。在此处,可以直接将计算资源1作为该翻译请求适用的计算资源,也可以结合其他策略从计算资源1开始逐级判断是否适用该翻译请求。后续将会对其他策略进行详述。
如果翻译请求所请求翻译的文本长度小于150字节但大于或等于10字节,则从计算资源2开始确定该翻译请求适用的计算资源,即将计算资源1排除在外。在此处,可以直接将计算资源2作为该翻译请求适用的计算资源,也可以结合其他策略从计算资源2开始逐级判断是否适用该翻译请求。
如果翻译请求所请求翻译的文本长度小于10字节,则从计算资源3开始确定该翻译请求所适用的计算资源,即将计算资源1和2排除在外。在此处,可以直接将计算资源3作为该翻译请求适用的计算资源,也可以结合其他策略进一步判断计算资源3是否适用该翻译请求。
作为另一种可实现的方式,可以基于令牌桶确定该翻译请求所适用的计算资源。
在本公开实施例中,每一级计算资源都对应有一个令牌桶,令牌桶中有令牌。令牌桶中的总令牌数可以根据对应计算资源的总服务能力确定,例如可以根据对应计算资源的总的服务实例数量确定。
如图3中所示,可以按照等级从高到低的顺序,依次针对各计算资源等级执行以下处理步骤:
在步骤301中,判断当前计算资源等级对应的令牌桶中是否存在足够的令牌数,如果是,执行步骤302;否则,执行步骤303。
具体地,可以首先确定服务请求要消耗的令牌数,判断当前计算资源等级对应的令牌桶内当前令牌数是否大于或等于要消耗的令牌数,如果是,则确定存在足够的令牌数;否则,确定不存在足够的令牌数。
作为一种可实现的方式,可以基于服务请求的QPS(Queries-per-second,每秒查询率)、TPS(Transaction-per-second,系统吞吐量)确定服务请求要消耗的令牌数。
但对于诸如翻译请求等服务场景,对于BPS(Bytes-per-second,每秒字节数)可能更加敏感,因此,作为一种优选的实施方式,可以基于服务请求的BPS确定服务请求要消耗的令牌数。对于翻译场景而言,诸如深度神经网络模型等计算资源对于翻译文本的长度更加敏感,翻译速度对不同长度的翻译文本有着较高方差,因此若采用QPS或TPS作为服务能力特征参数则会导致较高的计算误差。而在深度神经网络模型的翻译场景下,对BPS的方差较低,具有较好的不变性。
以翻译请求为例,在确定翻译请求要消耗的令牌数时,可以确定与请求翻译的文本长度等量的令牌数作为要消耗的令牌数。
例如,中到英翻译服务单实例翻译速度为1KB/S(每秒1千字节),其中一个等级的计算资源部署10个实例,因此服务能力为10KB/S,该计算资源等级的令牌桶内最大令牌数为1万个。当接收一个翻译文本长度为1K字节的翻译请求,则从桶内取走1000个令牌。通过BPS作为服务能力特征,综合考虑了不同长度的翻译请求给系统带来的压力,准确地描述了系统服务能力。
更进一步地,可以采用周期性向令牌桶中放入令牌的方式。在确定向令牌桶中放入令牌数量时,可以周期性地探知各等级的计算资源的可用性。例如定时发送心跳包的方式探测计算资源中各服务实例的可用性;再例如采用诸如Zookeeper的Watch机制探知计算资源中各服务实例的可用性。另外,除了周期性探知的方式之外,也可以基于特定事件触发探知。然后依据探知结果维护各计算资源等级对应的令牌桶内的令牌数。
也就是说,各计算资源等级的服务能力可以实时获取的,而并非人工设定。当进行服务能力的扩容、缩容时,可以自适应地调整令牌桶内的令牌数量,人力成本极低,且具有较好的鲁棒性。
在步骤302中,确定该计算资源等级为服务请求适用的计算资源等级。
在此需要说明的是,在确定出使用的计算资源等级后,会将该计算资源等级对应的令牌桶中的令牌消耗掉对应的令牌数。然后在后续步骤103中,将服务请求发送给确定出的该计算资源等级对应的N个队列中的其中一个。
在步骤303中,判断是否存在下一计算资源等级,如果是,针对下一计算资源等级转至执行步骤301;否则,执行步骤304。
在步骤304中,拒绝该服务请求。
结合图1对上述流程举个例子,接收到翻译请求后,首先判断计算资源1对应的令牌桶中是否具有足够的令牌,如果有,则确定计算资源1为该翻译请求适用的计算资源等级。
如果计算资源1对应的令牌桶中不具有足够的令牌,则继续判断计算资源2对应的令牌桶中是否具有足够的令牌,如果有,则确定计算资源2为该翻译请求适用的计算资源等级。
如果计算资源2对应的令牌桶中也不具有足够的令牌,则继续判断计算资源3对应的令牌桶中是否具有足够的令牌,如果有,则确定计算资源3为该翻译请求适用的计算资源等级;否则,说明所有计算资源都不具有服务能力,拒绝该服务请求。
下面对步骤203即“依据服务请求的产品形式、应用形式以及服务等级中的至少一种,从计算资源等级对应的至少N个队列中确定对应的队列”进行详细描述。
仍以翻译服务场景为例,对于翻译服务而言,可能存在多种产品形式、多种应用形式,不同应用形式的服务等级也不尽相同。因此,在本公开实施例中,针对每个等级的计算资源分别设置有至少N个队列。
如图4中所示,翻译服务存在4中产品形式:Web PC(PC网页版)、Web Wise(智能网页版)、APP(移动应用版)和PC客户端,那么可以根据每种产品形态的流量状况来设置相应的队列。例如针对Web PC设置3个队列,即队列1、队列2和队列3。针对Web Wise设置一个队列:队列4。针对APP设置2个队列:队列5和队列6。针对PC客户端设置1一个队列:队列7。
其中,Web PC这种产品形式存在5种应用形式:通用翻译、划词翻译、多候选翻译、网页翻译、长文档翻译。那么可以进一步依据这几种应用形式的服务等级(例如可以采用响应时间来体现服务等级)在3个队列中划分上述应用形式。例如,通用翻译、划词翻译、多候选翻译的实时性要求较高、服务等级较高,因此可以将这三种应用形式对应至队列1。将网页翻译这种应用形式对应至队列2。将长文翻译这种应用形式对应至队列3。
其他产品形式的处理方式类似,就可以得到诸如图4中所示的队列设置方式。
若接收到翻译请求后,依据翻译请求的产品形式、应用形式以及服务等级就可以确定出对应的队列是哪一个,然后将该翻译请求发送至该队列中。
图4中仅仅为一种示例性的分配方式,也可以仅仅依据产品形式、应用形式和服务等级中的一种或者两种来设置对应的队列。例如仅仅根据产品形式设置队列,再例如仅仅根据服务等级设置队列,等等。
下面结合实施例对上述步骤204即“将服务请求发送至确定的队列;其中各队列被配置有权值,以便计算资源对对应的各队列按照权重进行轮询”进行详细描述。
继续参照图4所示例子,可以根据服务等级为每个队列分配权值,每个队列被分配权值w0、w1、w2、w3、w4、w5、w6。服务等级与权值呈正相关,即服务等级高的队列被分配的权值也相应较高,服务等级低的队列被分配的权值也相应较低。这样翻译服务资源对其所对应的这7个队列按照权值进行轮询。权值高的队列被轮询到的概率就更大。权值低的队列被轮询到的概率就较小。
这种方式不仅使得各队列能够按照服务等级获得相应的计算资源,并且保证各队列均能够获得计算资源,不会出现计算资源假性饥饿的现象。在实际应用环境中,当单个产品形式或者单个应用形式的流量上涨时,仅影响与其处于相同队列产品或应用形式的可用性,其他队列的产品和应用形式的可用性不受影响。相比较传统的通过分别部署计算资源的物理隔离方式,计算资源的布设成本节省了30%,几乎以零人力成本获得了近乎物理隔离部署相同的效果。
更进一步地,在图2所示流程中步骤202之前,还可以增加熔断机制的处理。熔断机制可以作为限流控制的最后一道屏障,作为限流控制的有效补充。
传统的熔断机制是定时开启熔断来测试服务器可用性,一旦测试请求成功返回则完全关闭熔断,否则继续开启熔断。开启熔断后则完全拒绝服务。本公开也可以采用这种方式,但这种方式中需要额外发送测试请求,会加剧服务器端的压力。另外一方面,熔断的开启和关闭之间无中间状态,不具备连续性、平滑性,极易引起频繁抖动,导致服务质量下降。
因此,本公开提供了一种优选的熔断机制。如图5中所示,可以按照等级从高到低的顺序,依次针对各计算资源等级执行以下熔断处理:
在步骤501中,判断当前计算资源等级是否触发熔断状态,如果否,执行步骤502;如果是,执行步骤503。
本公开中可以采用滑动窗口的方式,统计最近预设时长内该计算资源等级的计算资源接收到的服务请求数(记为R)和成功返回的请求数(记为A)。计算资源正常运行时,即服务能力足够时,R和A的数量近似相等。当流量上涨服务能力不足时,开始出现请求失败的情况。所谓请求失败的情况可以包括响应请求的时长超过超时响应时间(即认为无响应的情况),也可以包括响应请求的时长超过基准响应时间(即认为服务质量下降的情况)。如果流量继续上涨,请求失败比例大于或等于预设的比例阈值,此时R≥kA,其中k为敏感度参数,则确定该计算资源等级触发熔断状态。
在步骤502中,从当前计算资源等级及其之下的服务等级中执行图2中所示步骤202,即从该计算资源等级开始往下逐级判断以确定服务请求适用的计算资源等级。
如果没有触发熔断状态,则说明当前计算资源等级的计算资源可用,可以接续图2中步骤202的处理,从当前计算资源等级开始向下逐级进行限流控制的判断,以确定将服务请求发送给哪一级计算资源等级对应的队列。
在步骤503中,确定当前计算资源等级是否对该服务请求进行拒绝处理,如果否,执行步骤502;如果是,针对下一级计算资源等级转至执行步骤501。
在本实施例中,当前计算资源等级触发熔断状态时并不会完全熔断,而是采用一定的概率来拒绝服务请求。可以按照最近预设时长内该计算资源等级的接收服务请求数、响应成功请求数以及预设的该计算资源等级的敏感度参数,确定请求拒绝概率值;然后按照该请求拒绝概率值,确定是否对该服务请求进行拒绝处理。
本实施例提供的这种熔断方式,在熔断状态下通过一定的概率拒绝服务请求,不会引起频繁抖动,提高了服务质量。另外,也无需额外发送测试请求,避免了给服务器端造成的额外压力。
下面以翻译场景为例,对上述实施例提供的整体优选方式进行描述以方便理解。如图6中所示,假设计算资源1、2和3的等级从高到低,每一级计算资源分别对应有N个队列。
在接收到翻译请求后,首先对计算资源1进行熔断控制,即依据计算资源最近预设时长内接收到的服务请求数R和成功返回A的请求数确定是否触发熔断状态。如果触发熔断状态,则依据请求拒绝概率值确定是否拒绝该翻译请求。如果拒绝,则针对计算资源2进行熔断控制,依次类推,如果计算资源2和计算资源3均判断出拒绝该翻译请求,则最终对该翻译请求进行拒绝。
如果计算资源1不拒绝该翻译请求,则继续对该计算资源1进行令牌控制。即判断计算资源1对应的令牌桶中是否具有足够的令牌,如果有,则确定计算资源1为该翻译请求适用的计算资源等级。依据该翻译请求中的产品形式、应用形式和服务等级将该翻译请求发送至计算资源1中的其中一个队列中。
如果计算资源1对应的令牌桶中不具有足够的令牌,则继续对计算资源2进行令牌控制。即判断计算资源2对应的令牌桶中是否具有足够的令牌,如果有,则确定计算资源2为该翻译请求适用的计算资源等级。依据该翻译请求中的产品形式、应用形式和服务等级将该翻译请求发送至计算资源2中的其中一个队列中。
如果计算资源2对应的令牌桶中也不具有足够的令牌,则继续对计算资源3进行令牌控制。即判断计算资源3对应的令牌桶中是否具有足够的令牌,如果有,则确定计算资源3为该翻译请求适用的计算资源等级;依据该翻译请求中的产品形式、应用形式和服务等级将该翻译请求发送至计算资源3中的其中一个队列中。否则,说明所有计算资源都不具有服务能力,拒绝该服务请求。
各级计算资源分别对各自对应的队列进行加权轮询,从队列中读取翻译请求进行处理。
由以上实例可以看出,上述多级分流和尝试的机制使得计算资源能够得到合理、充分地利用,同时兼顾了翻译服务的高可用性。通过多队列的软隔离机制使得产品、应用之间具备了低耦合性,解决了物理隔离部署所耗费的高成本问题。基于令牌的分流控制和熔断机制保证了翻译服务的稳定性和鲁棒性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上是对本公开所提供方法进行的详细描述,下面结合实施例对本公开提供的装置进行详细描述。图7为本公开实施例提供的流量控制装置的结构示意图,该装置可以采用中间件的形式位于服务器端。应用于包含M个等级的计算资源,每个计算资源对应有至少N个队列,所述M为正整数,所述N为大于1的正整数。如图7中所示,该装置可以包括:请求接收单元701、自适应限流单元702和多队列隔离单元703,还可以进一步包括自适应熔断单元704。其中各组成单元的主要功能如下:
请求接收单元701,用于接收服务请求。
自适应限流单元702,用于确定服务请求适用的计算资源等级。
多队列隔离单元703,用于依据服务请求的产品形式、应用形式以及服务等级中的至少一种,从计算资源等级对应的至少N个队列中确定对应的队列;将服务请求发送至确定的队列。
其中,各队列被配置有权值,以便计算资源对对应的各队列按照权值进行轮询。
作为一种优选的实施方式,自适应限流单元702,具体用于按照等级从高到低的顺序,判断计算资源等级对应的令牌桶中是否存在足够的令牌数,如果是,确定该计算资源等级为服务请求适用的计算资源等级;否则,对下一级计算资源等级执行判断。
更进一步地,自适应限流单元702,还用于若所有计算资源等级对应的令牌桶均不存在足够的令牌数,则拒绝服务请求。
其中,自适应限流单元702可以依据服务请求的BPS确定要消耗的令牌数;判断计算资源等级对应的令牌桶内当前令牌数是否大于或等于要消耗的令牌数,如果是,则确定存在足够的令牌数。
更进一步地,自适应限流单元702,还用于周期性地和/或基于事件触发地探知各等级的计算资源的可用性;依据探知结果维护各计算资源等级对应的令牌桶内的令牌数。
自适应熔断单元704,用于按照等级从高到低的顺序,依次针对各计算资源等级执行以下熔断处理:
判断计算资源等级是否触发熔断状态,如果否,则触发自适应限流单元702从该计算资源等级及其之下的服务等级中确定服务请求适用的计算资源等级;如果是,则确定是否对服务请求进行拒绝处理;
若不对服务请求进行拒绝处理,则触发自适应限流单元702从该计算资源等级及其之下的服务等级中确定服务请求适用的计算资源等级;
若对服务请求进行拒绝处理,则针对下一级计算资源等级转至执行判断计算资源等级是否触发熔断状态。
作为一种优选的实施方式,自适应熔断单元704可以用于判断最近预设时长内该计算资源等级的请求失败比例是否大于或等于预设的比例阈值,如果是,则触发熔断状态。
自适应熔断单元704可以用于按照最近预设时长内该计算资源等级的接收服务请求数、响应成功请求数以及预设的该计算资源等级的敏感度参数,确定请求拒绝概率值;按照请求拒绝概率值,确定是否对服务请求进行拒绝处理。
作为一种典型的应用场景,上述服务请求包括翻译请求;上述计算资源可以为翻译服务资源。
更进一步地,自适应限流单元702,还可以用于确定翻译请求所请求翻译的文本长度;若文本长度大于或等于预设第一长度阈值,则从第一等级开始确定翻译请求适用的计算资源等级;若文本长度小于预设的第二长度阈值,则从第二等级开始确定翻译请求适用的计算资源等级;
第一长度阈值大于或等于第二长度阈值,第一等级高于第二等级。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图8所示,是根据本公开实施例的流量控制方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如流量控制方法。例如,在一些实施例中,流量控制方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。
在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的流量控制方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行流量控制方法。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控30制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPs,VI irtual Private Server)服务中存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (23)
1.一种流量控制方法,应用于包含M个等级的计算资源,每个计算资源对应有至少N个队列,所述M为正整数,所述N为大于1的正整数;该方法包括:
接收服务请求;
确定所述服务请求适用的计算资源等级;
依据所述服务请求的产品形式、应用形式以及服务等级中的至少一种,从所述计算资源等级对应的至少N个队列中确定对应的队列;
将所述服务请求发送至确定的队列;
其中,所述各队列被配置有权值,以便计算资源对对应的各队列按照权值进行轮询。
2.根据权利要求1所述的方法,其中,确定所述服务请求适用的计算资源等级包括:
按照等级从高到低的顺序,判断计算资源等级对应的令牌桶中是否存在足够的令牌数,如果是,确定该计算资源等级为所述服务请求适用的计算资源等级;否则,对下一级计算资源等级执行所述判断。
3.根据权利要求2所述的方法,还包括:
若所有计算资源等级对应的令牌桶均不存在足够的令牌数,则拒绝所述服务请求。
4.根据权利要求2所述的方法,其中,所述判断计算资源等级对应的令牌桶中是否存在足够的令牌数包括:
依据所述服务请求的每秒字节数BPS确定要消耗的令牌数;
判断所述计算资源等级对应的令牌桶内当前令牌数是否大于或等于所述要消耗的令牌数,如果是,则确定存在足够的令牌数。
5.根据权利要求2所述的方法,还包括:
周期性地和/或基于事件触发地探知各等级的计算资源的可用性;
依据探知结果维护各计算资源等级对应的令牌桶内的令牌数。
6.根据权利要求1所述的方法,其中,在所述确定所述服务请求适用的计算资源等级之前,还包括:按照等级从高到低的顺序,依次针对各计算资源等级执行以下熔断处理:
判断计算资源等级是否触发熔断状态,如果否,则从该计算资源等级及其之下的服务等级中执行确定所述服务请求适用的计算资源等级;如果是,则确定是否对所述服务请求进行拒绝处理;
若不对所述服务请求进行拒绝处理,则从该计算资源等级及其之下的服务等级中执行确定所述服务请求适用的计算资源等级;
若对所述服务请求进行拒绝处理,则针对下一级计算资源等级转至执行所述判断计算资源等级是否触发熔断状态。
7.根据权利要求6所述的方法,其中,所述判断计算资源等级是否触发熔断状态包括:
判断最近预设时长内该计算资源等级的请求失败比例是否大于或等于预设的比例阈值,如果是,则触发熔断状态。
8.根据权利要求6所述的方法,其中,所述确定是否对所述服务请求进行拒绝处理包括:
按照最近预设时长内该计算资源等级的接收服务请求数、响应成功请求数以及预设的该计算资源等级的敏感度参数,确定请求拒绝概率值;
按照所述请求拒绝概率值,确定是否对所述服务请求进行拒绝处理。
9.根据权利要求1至8中任一项所述的方法,其中,所述服务请求包括翻译请求;
所述计算资源为翻译服务资源。
10.根据权利要求9所述的方法,其中,确定所述服务请求适用的计算资源等级包括:
确定所述翻译请求所请求翻译的文本长度;
若文本长度大于或等于预设第一长度阈值,则从第一等级开始确定所述翻译请求适用的计算资源等级;
若文本长度小于预设的第二长度阈值,则从第二等级开始确定所述翻译请求适用的计算资源等级;
所述第一长度阈值大于或等于所述第二长度阈值,所述第一等级高于所述第二等级。
11.一种流量控制装置,应用于包含M个等级的计算资源,每个计算资源对应有至少N个队列,所述M为正整数,所述N为大于1的正整数;该装置包括:
请求接收单元,用于接收服务请求;
自适应限流单元,用于确定所述服务请求适用的计算资源等级;
多队列隔离单元,用于依据所述服务请求的产品形式、应用形式以及服务等级中的至少一种,从所述计算资源等级对应的至少N个队列中确定对应的队列;将所述服务请求发送至确定的队列;
其中,所述各队列被配置有权值,以便计算资源对对应的各队列按照权值进行轮询。
12.根据权利要求11所述的装置,其中,所述自适应限流单元,具体用于按照等级从高到低的顺序,判断计算资源等级对应的令牌桶中是否存在足够的令牌数,如果是,确定该计算资源等级为所述服务请求适用的计算资源等级;否则,对下一级计算资源等级执行所述判断。
13.根据权利要求12所述的装置,其中,所述自适应限流单元,还用于若所有计算资源等级对应的令牌桶均不存在足够的令牌数,则拒绝所述服务请求。
14.根据权利要求12所述的装置,其中,所述自适应限流单元,具体用于依据所述服务请求的每秒字节数BPS确定要消耗的令牌数;判断所述计算资源等级对应的令牌桶内当前令牌数是否大于或等于所述要消耗的令牌数,如果是,则确定存在足够的令牌数。
15.根据权利要求12所述的装置,其中,所述自适应限流单元,还用于周期性地和/或基于事件触发地探知各等级的计算资源的可用性;依据探知结果维护各计算资源等级对应的令牌桶内的令牌数。
16.根据权利要求11所述的装置,还包括:
自适应熔断单元,用于按照等级从高到低的顺序,依次针对各计算资源等级执行以下熔断处理:
判断计算资源等级是否触发熔断状态,如果否,则触发所述自适应限流单元从该计算资源等级及其之下的服务等级中确定所述服务请求适用的计算资源等级;如果是,则确定是否对所述服务请求进行拒绝处理;
若不对所述服务请求进行拒绝处理,则触发所述自适应限流单元从该计算资源等级及其之下的服务等级中确定所述服务请求适用的计算资源等级;
若对所述服务请求进行拒绝处理,则针对下一级计算资源等级转至执行所述判断计算资源等级是否触发熔断状态。
17.根据权利要求16所述的装置,其中,所述自适应熔断单元,具体用于判断最近预设时长内该计算资源等级的请求失败比例是否大于或等于预设的比例阈值,如果是,则触发熔断状态。
18.根据权利要求16所述的装置,其中,所述自适应熔断单元,具体用于按照最近预设时长内该计算资源等级的接收服务请求数、响应成功请求数以及预设的该计算资源等级的敏感度参数,确定请求拒绝概率值;按照所述请求拒绝概率值,确定是否对所述服务请求进行拒绝处理。
19.根据权利要求11至18中任一项所述的装置,其中,所述服务请求包括翻译请求;
所述计算资源为翻译服务资源。
20.根据权利要求19所述的装置,其中,所述自适应限流单元,还用于确定所述翻译请求所请求翻译的文本长度;若文本长度大于或等于预设第一长度阈值,则从第一等级开始确定所述翻译请求适用的计算资源等级;若文本长度小于预设的第二长度阈值,则从第二等级开始确定所述翻译请求适用的计算资源等级;
所述第一长度阈值大于或等于所述第二长度阈值,所述第一等级高于所述第二等级。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-10中任一项所述的方法。
23.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110470780.6A CN113225265B (zh) | 2021-04-28 | 2021-04-28 | 流量控制方法、装置、设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110470780.6A CN113225265B (zh) | 2021-04-28 | 2021-04-28 | 流量控制方法、装置、设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113225265A true CN113225265A (zh) | 2021-08-06 |
CN113225265B CN113225265B (zh) | 2022-10-28 |
Family
ID=77089864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110470780.6A Active CN113225265B (zh) | 2021-04-28 | 2021-04-28 | 流量控制方法、装置、设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113225265B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691604A (zh) * | 2021-08-18 | 2021-11-23 | 深圳鼎盛电脑科技有限公司 | 一种网络请求的自适应限流方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104937584A (zh) * | 2012-12-19 | 2015-09-23 | 赛门铁克公司 | 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量 |
CN109933426A (zh) * | 2019-02-19 | 2019-06-25 | 北京三快在线科技有限公司 | 服务调用的处理方法、装置、电子设备及可读存储介质 |
US10530851B1 (en) * | 2018-01-31 | 2020-01-07 | Vivint, Inc. | Distributed data center |
CN111061570A (zh) * | 2019-11-26 | 2020-04-24 | 深圳云天励飞技术有限公司 | 一种图像计算请求处理方法、装置及终端设备 |
-
2021
- 2021-04-28 CN CN202110470780.6A patent/CN113225265B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104937584A (zh) * | 2012-12-19 | 2015-09-23 | 赛门铁克公司 | 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量 |
US10530851B1 (en) * | 2018-01-31 | 2020-01-07 | Vivint, Inc. | Distributed data center |
CN109933426A (zh) * | 2019-02-19 | 2019-06-25 | 北京三快在线科技有限公司 | 服务调用的处理方法、装置、电子设备及可读存储介质 |
CN111061570A (zh) * | 2019-11-26 | 2020-04-24 | 深圳云天励飞技术有限公司 | 一种图像计算请求处理方法、装置及终端设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691604A (zh) * | 2021-08-18 | 2021-11-23 | 深圳鼎盛电脑科技有限公司 | 一种网络请求的自适应限流方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113225265B (zh) | 2022-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210156243A (ko) | 딥러닝 프레임워크의 훈련 방법, 장치 및 저장 매체 | |
CN114356547B (zh) | 基于处理器虚拟化环境的低优阻塞方法及装置 | |
CN113407347B (zh) | 资源调度方法、装置、设备和计算机存储介质 | |
CN113220420A (zh) | 服务监控方法、装置、设备、存储介质及计算机程序产品 | |
US11190581B1 (en) | Job allocation support system and method | |
CN111865720B (zh) | 用于处理请求的方法、装置、设备以及存储介质 | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
CN113225265B (zh) | 流量控制方法、装置、设备和计算机存储介质 | |
CN113986497B (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
CN113132479A (zh) | 流量切换、模型生成方法、装置、设备、存储介质及程序 | |
CN113641688B (zh) | 节点更新方法、相关装置及计算机程序产品 | |
CN113747423B (zh) | 云手机状态同步方法、装置、设备、存储介质及程序产品 | |
JP7307766B2 (ja) | トラフィック調整方法、装置、電子機器、コンピュータ可読記録媒体及びコンピュータプログラム | |
CN114936106A (zh) | 一种主机故障的处理方法、装置及介质 | |
CN112994934B (zh) | 数据交互方法、装置及系统 | |
CN115567602A (zh) | Cdn节点回源方法、设备及计算机可读存储介质 | |
CN115190180A (zh) | 在网络资源请求骤增时的网络资源请求调度方法和装置 | |
CN114501084A (zh) | 播放器的起播方法、装置、设备和介质 | |
CN114722003A (zh) | 中心化数据采集方法、装置、设备及存储介质 | |
CN114265692A (zh) | 服务调度方法、装置、设备以及存储介质 | |
CN114374657A (zh) | 一种数据处理方法和装置 | |
CN114071192A (zh) | 信息获取方法、终端、服务器、电子设备以及存储介质 | |
CN113055199A (zh) | 网关访问方法、装置及网关设备 | |
CN110933122A (zh) | 管理服务器的方法、设备和计算机存储介质 | |
CN114006902B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |