CN113965519B - 流量控制、集群资源保障方法、设备及存储介质 - Google Patents
流量控制、集群资源保障方法、设备及存储介质 Download PDFInfo
- Publication number
- CN113965519B CN113965519B CN202111039052.6A CN202111039052A CN113965519B CN 113965519 B CN113965519 B CN 113965519B CN 202111039052 A CN202111039052 A CN 202111039052A CN 113965519 B CN113965519 B CN 113965519B
- Authority
- CN
- China
- Prior art keywords
- access request
- flow control
- token bucket
- flow
- data
- 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 55
- 238000004891 communication Methods 0.000 claims description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 238000007726 management method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 239000012634 fragment Substances 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 102100033121 Transcription factor 21 Human genes 0.000 description 2
- 101710119687 Transcription factor 21 Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2491—Mapping quality of service [QoS] requirements between different networks
-
- 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
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种流量控制、集群资源保障方法、设备及存储介质。在流量控制方法中,存储节点接收到用户的访问请求后,可从数据量索引信息中,查询该访问请求对应的数据量,并可根据查询到的数据量以及预设的流量阈值,对访问请求进行流量控制。基于这种实施方式,一方面,存储节点可自主实现访问压力的预测,极大降低了流量控制所需的计算资源的成本。另一方面,存储节点基于访问请求对应的真实数据量进行压力预测,可预测得到访问请求产生的真实压力,从而有利于根据不同的访问请求之间的差异性,精准地进行流量控制。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种流量控制、集群资源保障方法、设备及存储介质。
背景技术
云平台提供的容器服务可使用分布式存储系统存储用户在kubernetes集群中的元信息。在公有云的场景中,多个用户(即多租户)可共享一个数据库集群,从而提升数据库集群利用率,降低成本。
但是,多个用户共享一个数据库集群时,多个共享用户可产生大流量的访问请求,这种大流量访问可能导致集群整体不可用或者服务质量下降。现有的流量控制方式,具有部署成本较高的问题。因此,有待提出一种新的解决方案。
发明内容
本申请的多个方面提供一种流量控制、集群资源保障方法、设备及存储介质,用以降低多租户场景下的流量控制成本,提升多用户场景下的流量控制的准确性。
本申请实施例还提供一种流量控制方法,包括:存储节点接收用户的访问请求;从数据量索引信息中,查询所述访问请求对应的数据量;所述数据量索引信息,用于保存所述存储节点的不同用户在所述存储节点中的可访问数据的数据量;根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制。
进一步可选地,所述数据量索引信息,采用采用键-值存储结构进行存储;从数据量索引信息中,查询所述访问请求对应的数据量,包括:根据所述用户的标识以及所述访问请求携带的数据标识,确定待查询的键;在所述数据量索引信息中,查询所述待查询的健对应的值,得到所述访问请求的数据量。
进一步可选地,根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制,包括:确定令牌桶,所述令牌桶的令牌投放速率与所述流量阈值对应;根据所述访问请求对应的数据量,计算所述访问请求所需的令牌数;根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制。
进一步可选地,所述流量阈值包括:所述存储节点的全局流量阈值,或者,所述用户的单用户流量阈值;根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制,包括:判断所述令牌桶中的剩余令牌数是否小于所述访问请求所需的令牌数;若所述令牌桶中的剩余令牌数小于所述访问请求所需的令牌数,则对所述访问请求进行访问异常处理。
进一步可选地,所述令牌桶包括:第一令牌桶以及第二令牌桶;所述第一令牌桶的令牌投放速率与所述存储节点的全局流量阈值对应;所述第二令牌桶的令牌投放速率与所述用户的单用户流量阈值对应;根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制,包括:判断所述第一令牌桶中的剩余令牌数是否小于所述访问请求所需的令牌数;若所述第一令牌桶中的剩余令牌数大于或者等于所述访问请求所需的令牌数,则判断所述第二令牌桶中的剩余令牌数是否小于所述访问请求所需的令牌数;若所述第二令牌桶中的剩余令牌数小于所述访问请求所需的令牌数,则对所述访问请求进行访问异常处理。
进一步可选地,根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制之前,还包括:读取为所述存储节点动态配置的流量策略文件;从所述流量策略文件中,解析得到流量控制操作的启动指令,所述启动指令包括:全局流量控制指令,和/或,单用户流量控制指令;根据所述启动指令,开启所述存储节点的全局流量控制,和/或,单个用户流量控制。
进一步可选地,读取为所述存储节点动态配置的流量策略文件之后,还包括:从所述流量策略文件中,解析得到流量控制类型,和/或,流量控制阈值;其中,所述流量控制类型,包括:写入流量控制和/或读取流量控制;其中,所述流量控制阈值,包括:全局流量阈值,和/或,单用户流量阈值。
本申请实施例还提供一种数据库集群资源保障方法,所述数据库集群包括多个存储节点,任一存储节点的存储资源被多个用户共享使用;所述方法包括:所述数据库集群中的任一存储节点接收用户的访问请求;从数据量索引信息中,查询所述访问请求对应的数据量;所述数据量索引信息,用于保存所述存储节点的不同用户在所述存储节点中的可访问数据的数据量;根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制。
本申请实施例还提供一种服务器,包括:存储器、处理器以及通信组件;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本申请实施例提供的方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被处理器执行时能够实现本申请实施例提供的方法中的步骤。
本申请实施例提供的流量控制方法中,存储节点接收到用户的访问请求后,可从数据量索引信息中,查询该访问请求对应的数据量,并可根据查询到的数据量以及预设的流量阈值,对访问请求进行流量控制。基于这种实施方式,一方面,存储节点可自主实现访问压力的预测,极大降低了流量控制所需的计算资源的成本。另一方面,存储节点基于访问请求对应的真实数据量进行压力预测,可预测得到访问请求产生的真实压力,从而有利于根据不同的访问请求之间的差异性,精准地进行流量控制。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为基于proxy(数据库代理组件或者代理服务器)进行流量控制的示意图;
图2为本申请一示例性实施例提供的流量控制方法的流程示意图;
图3为本申请一示例性实施例提供的数据量索引信息的存储结构的示意图;
图4为本申请一示例性实施例提供的存储节点内部的模块及其相互调用关系的示意图;
图5为本申请一示例性实施例提供的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
云平台提供的容器服务可使用分布式存储系统(例如etcd存储系统)存储用户在kubernetes集群中的元信息。在公有云的场景中,多个用户可共享一个数据库集群,从而提升数据库集群利用率,降低成本。
但是,多个用户共享一个数据库集群时,多个共享用户可产生大流量的访问请求,这种大流量访问可能导致集群整体不可用或者服务质量下降。
在一种etcd数据库集群的解决方案中,如图1所示,可在客户端与数据库集群etcd之间部署proxy(数据库代理组件或者代理服务器),对用户的读写请求产生的QPS(QueryPer Second,每秒查询率)进行统计,并基于QPS统计结果预估用户的请求压力,从而根据预估到的压力值进行流量限制。若用户的请求压力在数据库集群的压力接收范围内,则proxy可将用户的访问请求转发至数据库集群etcd,否则可向客户端返回错误码(例如被限流错误对应的错误码)。
但是,在这种解决方案中,需要额外的计算资源(例如内存、处理器等)运行proxy,增加了流量控制所需的成本。当etcd集群中包含的etcd节点较多时,所需的proxy的数量增加,将耗费大量的计算资源。
另外,在这种解决方案中,用户的访问请求的需由客户端发送至proxy,再由proxy转发至对应的etcd节点,这一数据链路较长,当出现稳定性问题时,不易进行排查。
同时,在这种解决方案中,基于QPS预估访问压力的准确性较低。例如,某个用户在etcd集群中存放有大量数据,用户的一个全量查询将返回大量数据,从而对etcd集群产生较大的压力,甚至可能导致集群出现OOM(Out of memory,内存溢出)异常。若某个用户在etcd集群中存放的数据量较小,则对用户的查询次数进行限制,将导致用户需要通过多次查询才能够访问到少量的数据,极大影响用户的查询效率。
针对上述技术问题,在本申请一些实施例中,提供了一种解决方案,该解决方案可基于QOS(Quality of Service,服务质量)进行流量控制。以下结合附图,详细说明本申请各实施例提供的技术方案。
图2为本申请一示例性实施例提供的流量控制方法的流程示意图,如图2所示,该方法包括:
步骤201、存储节点接收用户的访问请求。
步骤202、从数据量索引信息中,查询所述访问请求对应的数据量;所述数据量索引信息,用于保存所述存储节点的不同用户在所述存储节点中的可访问数据的数据量。
步骤303、根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制。
本实施例由存储节点执行。该存储节点,可以是任一数据库集群中的一台服务器。该服务器可实现为常规服务器、云服务器、云主机、虚拟中心、弹性计算实例等服务器等设备,本实施例对此不做限制。其中,服务器设备的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,不再赘述。
其中,该数据库集群,可以是etcd集群、Oracle集群、redis集群等数据库集群,本实施例包含但不限于此。数据库集群可以部署在公有云上,以向多用户提供远端的数据库服务。存储节点,可以是上述数据库集群中的一台部署有存储系统的服务器。例如,数据库集群实现为etcd集群时,该存储节点可实现为一台部署有etcd存储系统的服务器,该服务可称为etcd节点(即etcd后端)。当数据库集群实现为Oracle集群时,该存储节点可实现为一台部署有Oracle存储系统的服务器。其中,用户,指的是使用存储节点提供的数据库服务的用户,或称数据库服务的租户。用户的访问请求,可由数据库服务提供的客户端发送,该客户端运行在用户持有的终端设备上。该终端设备可以是手机、平板电脑、计算机设备等,用户可通过上述终端设备上运行的插件、应用程序或者浏览器等客户端发起针对存储节点的访问请求。
其中,客户端与存储节点之间可建立通信连接,进而,客户端可与该通信连接向存储节点发送访问请求。客户端与存储节点之间的通信连接,可基于有线通信方式或者无线通信方式实现。其中,无线通信方式包括蓝牙、ZigBee、红外线、WiFi(WIreless-Fidelity,无线保真技术)等短距离通信方式,也包括LORA等远距离无线通信方式,还可包括基于移动网络的无线通信方式。其中,当通过移动网络通信连接时,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、5G、WiMax等中的任意一种。
在本实施例中,存储节点中部署有服务质量管理模块(QOS Manager)以及流量控制模块(Limiter)。其中,服务质量管理模块用于对存储节点的流量控制功能进行整体管理。流量控制模块用于在服务质量管理模块的管理下,实现流量控制。其中,服务质量管理模块以及流量控制模块,可作为功能模块运行在存储节点上,存储节点可启动对应的线程执行上述两个模块对应的功能。相较于现有技术中额外部署proxy进行QPS统计的方式而言,这种在存储节点上启动两个线程实现流量控制的方式,不需要额外占用较多的计算资源,可极大降低流量控制的成本。
在本实施例中,存储节点可基于流量控制模块,从数据量索引信息中,查询用户在存储节点中将要访问的目标数据的数据量,作为该访问请求的数据量。其中,数据量索引信息,用于保存存储节点的不同用户在存储节点中的可访问数据的数据量。用户的可访问数据,可以是用户存储在存储节点中的数据,也可以是云端的其他服务提供的可供用户使用的资源数据,本实施例不做限制。其中,用户的访问请求中,可携带需要访问的目标数据的数据标识,根据该目标数据的数据标识,可从数据量索引信息中查询到该用户的访问请求对应的数据量。
其中,同一用户的不同访问请求对应的数据量不同,不同用户的访问请求对应的数据量也可能不同。基于查询数据量索引信息的方式,可准确地获取每次访问请求的对应的数据量,有利于根据实际的数据量大小,灵活地对存储节点的访问压力进行预测,从而实现精准流量控制。
在本实施例中,针对任一用户的访问请求,存储节点查询到该访问请求对应的数据量后,可基于流量控制模块,根据访问请求对应的数据量以及预设的流量阈值,对用户的访问请求进行流量控制。
其中,流量阈值可根据存储节点能够承受的访问压力进行设置,本实施例不对该流量阈值的具体取值进行限制。
在一些实施例中,存储节点进行流量控制时,可进行全局流量控制。该全局流量控制,是指对存储节点整体的访问流量进行控制,该整体的访问流量可由多个用户产生。在进行全局流量控制时,该流量阈值可包括全局流量阈值。该全局流量阈值可用于描述存储节点在单位时间内所能承受的流量的上限值。例如,某一存储节点的全局流量阈值为30M/s,或者为50M/s。
在另一些实施例中,存储节点进行流量控制时,可进行单用户流量控制。该单用户流量控制,是指对单个用户对存储节点的访问流量进行控制。在进行单用户流量控制时,该流量阈值可包括单用户流量阈值。单用户流量阈值,可用于描述用户在单位时间内可使用的流量的上限值。其中,存储节点向多个用户提供服务时,多个用户可具有相同的单用户流量阈值,也可具有不同的单用户流量阈值,本实施例不做限制。例如,用户A的单用户流量阈值为5M/s,用户B的单用户流量阈值为3M/s。
在本实施例中,存储节点接收到用户的访问请求后,可从数据量索引信息中,查询该访问请求对应的数据量,并可根据查询到的数据量以及预设的流量阈值,对访问请求进行流量控制。基于这种实施方式,一方面,存储节点可自主实现访问压力的预测,极大降低了流量控制所需的计算资源的成本。另一方面,存储节点基于访问请求对应的真实数据量进行压力预测,可预测得到访问请求产生的真实压力,从而有利于根据不同的访问请求之间的差异性,精准地进行流量控制。
在一些示例性的实施例中,可预先建立用户的可访问数据的数据量索引信息,以便于存储节点在接收到访问请求后,从预设的数据量索引信息中,查询该访问请求对应的数据量。
可选地,存储节点可获取存储节点的不同用户各自对应的可访问数据的数据量,并采用键-值(key-value)存储结构,对该不同用户各自对应的可访问数据的数据量进行存储,得到数据量索引信息。其中,可将用户的标识以及数据的标识作为键,将数据的数据量作为值。
基于此,流量控制模块从数据量索引信息中,查询访问请求对应的数据量时,可根据发送该访问请求的用户的标识以及该访问请求携带的数据标识,确定待查询的键;在数据量索引信息中,查询该键对应的值,得到访问请求的数据量。
可选地,该数据量索引信息可采用B+tree(B+树)的数据结构进行存储。如图3所示,B+tree包含三层节点,中间层的节点用于存储用户标识,以区分共享存储节点的多个用户。每一中间层的节点,可对应多个叶子节点,用户的可访问数据的标识以及数据量存储在叶子节点中。例如,用户A的数据量索引信息为:[key=A/pod,value=size:3],[key=A/pod1,value=size:4]。用户B的数据量索引信息为:[key=B/pod,value=size:2]。用户B的数据量索引信息为:[key=C/pod,value=size:6],[key=C/pod2,value=size:9]。其中,size为表示数据量的字段。
在本实施例中,数据量索引信息可由存储节点中的数据量索引模块维护。其中,该数量索引模块可向流量控制模块提供多个操作接口,包括:查询接口、更新接口、删除接口以及写入接口。
可选地,查询接口,可包括:单个查询接口以及全量查询接口中的至少一种。流量控制模块可根据访问请求携带的数据查询范围,调用单个查询接口或全量查询接口,查询访问请求对应的数据量。
其中,单个查询接口用于查询某个键对应的值。例如,沿用上述例子,流量控制模块可调用该单个查询接口,查询key=A/pod的值。该单个查询接口返回的值为value=size:3。
其中,全量查询接口,用于查询某个用户对应的所有键对应的值的总和。例如,沿用上述例子,流量控制模块可调用该全量查询接口,查询key=A/pod以及key=A/pod1的值。该全量查询接口返回的值为size:7。
其中,更新接口、删除接口以及写入接口,用于对数据量索引信息进行更新。当用户的访问请求对该用户的可访问数据进行修改后,数据量索引模块可调用对应的接口,实时更新该数据量索引信息。
可选地,流量控制模块可根据用户的数据删除操作,调用数据量索引模块提供的删除接口,删除B+tree中对应的键-值对。例如,用户A删除pod时,数据量索引模块可在B+tree中删除存储有键-值对[key=A/pod,value=size:3]的叶子节点。
可选地,流量控制模块可根据用户的数据写入操作,调用数据量索引模块提供的写入接口,在B+tree中新增键-值对。例如,用户B新增数据量大小为5的pod2时,数据量索引模块可在B+tree中增加用户B的叶子节点,该新增的叶子节点存储的键-值对为:[key=B/pod2,value=size:5]。
可选地,流量控制模块可根据用户的数据修改操作,调用数据量索引模块提供的更新接口,在B+tree中修改键-值对中的值的大小。例如,用户C从pod中删除一部分数据时,数据量索引模块可在B+tree中更新key=C/pod对应的值。
基于上述接口,存储节点可灵活地对数据量索引信息进行使用并维护,为流量控制提供良好的数据基础。
在这种实施方式中,通过建立用户的可访问数据的数据量对应的索引信息,可记录每个用户的可访问数据的真实大小,在用户发起访问请求时,可在执行用户的访问请求之前,准确地预估出用户的请求压力的大小。该预估出的请求压力可反映出存储节点的真实压力,从而准确地实现流量控制。
在一些示例性的实施例中,流量控制模块可根据访问请求对应的数据量以及预设的流量阈值,采用令牌桶算法(token bucket)对用户的访问请求进行流量控制。以下将进行具体说明。
在令牌桶算法中,存在一具有特定容量的令牌桶,假设令牌桶的容量为b。可设置令牌投放速率为r/s,即,每秒钟有r个令牌被投放至令牌桶。当令牌桶中存放有b个令牌后,新投放的令牌将会被丢弃。当一个n个字节的数据包到达时,若令牌桶中剩余的令牌数大于或者等于n个,则可从令牌桶中删除n个令牌,并将该数据包发送至网络。若该令牌桶中剩余的令牌数小于n个,则可认为该数据包被限流。
基于上述令牌桶算法进行流量控制时,可选地,可确定流量控制算法所使用的令牌桶,该令牌桶的令牌投放速率与预设的流量阈值对应。其中,流量阈值可以为存储节点每秒承受的流量的上限值。令牌投放速率可以为每秒向令牌桶投放的令牌的数量。
流量控制模块可根据用户的访问请求对应的数据量,计算该访问请求所需的令牌数,并根据令牌桶的剩余令牌数以及访问请求所需的令牌数,采用令牌桶算法,对该访问请求进行流量控制。
在一些实施例中,可设置一个比特(bit)对应一个令牌,可设置一个字节(Byte)对应一个令牌,也可设置一个千字节(KB)对应一个令牌,具体可根据访问请求的数据量的上下限范围设置,本实施例不做限制。
可选地,以一个字节对应一个令牌为例,根据用户的访问请求对应的数据量,计算该访问请求所需的令牌数时,可将访问请求对应的数据量转化为字节流,其中,一个字节对应令牌桶中的一个令牌。例如,用户的某一访问请求对应的数据量为2KB,转化为字节流后,该访问请求对应的字节数为2048Byte。那么执行该访问请求所需的令牌数为2048个。在一些可选的实施例A中,存储节点可提供全局限流功能。
在这种实施例中,流量控制模块所使用的流量阈值包括:存储节点的全局流量阈值。可选地,令牌桶的令牌投放速率可以等于该全局流量阈值。例如,假设全局流量阈值为30M/s时,若一个字节对应一个令牌时,则可按照(30*1024*1024)/s的速率,向令牌桶中投放令牌。
流量控制模块根据令牌桶的剩余令牌数以及访问请求所需的令牌数,采用令牌桶算法,对访问请求进行流量控制,时,可判断令牌桶中的剩余令牌数是否小于该访问请求所需的令牌数。若令牌桶中的剩余令牌数小于访问请求所需的令牌数,则对该访问请求进行访问异常处理。若令牌桶中的剩余令牌数大于或者等于访问请求所需的令牌数,则执行该访问请求,并从令牌桶的剩余令牌数中减去该访问请求所需的令牌数。
基于沿用上述例子,若令牌桶中剩余的令牌数大于或者等于2048个,则执行该访问请求。若令牌桶中剩余的令牌数小于2048个,则可对该访问请求进行访问异常处理。
在一些可选的实施例B中,存储节点可提供单用户限流功能。
在这种实施例中,流量控制模块所使用的流量阈值包括:用户的单用户流量阈值。可选地,令牌桶的令牌投放速率可以等于该单用户流量阈值。例如,假设单用户流量阈值为5M/s时,若一个字节对应一个令牌时,则可按照(5*1024*1024)/s的速率,向令牌桶中投放令牌。
流量控制模块根据令牌桶的剩余令牌数以及访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制时,可判断令牌桶中的剩余令牌数是否小于访问请求所需的令牌数;若令牌桶中的剩余令牌数小于访问请求所需的令牌数,则对访问请求进行访问异常处理。若令牌桶中的剩余令牌数大于或者等于访问请求所需的令牌数,则执行该访问请求,并从令牌桶的剩余令牌数中减去该访问请求所需的令牌数。
在一些可选的实施例C中,存储节点可同时提供全局限流功能以及单用户限流功能。
在这种实施方式中,用于执行令牌桶算的令牌桶可包括:第一令牌桶以及第二令牌桶。其中,第一令牌桶的令牌投放速率与存储节点的全局流量阈值对应,用于进行全局限流操作。第二令牌桶的令牌投放速率与用户的单用户流量阈值对应,用于执行单用户的限流操作。
例如,假设全局流量阈值为100M/s,单用户流量阈值为10M/s。若一个字节对应一个令牌,则可按照(100*1024*1024)/s的速率,向第一令牌桶中投放令牌,并按照(10*1024*1024)/s的速率,向第二令牌桶中投放令牌。
其中,当存储节点上具有多个用户时,每个用户的单用户流量阈值可以相同,也可以不同,本实施例不做限制。
其中,针对某一用户的访问请求,流量控制模块可先进行全局限流操作,再进行单用户限流操作。即,采用令牌桶算法对所述访问请求进行流量控制时,流量控制模块可首先判断第一令牌桶中的剩余令牌数是否小于访问请求所需的令牌数;若第一令牌桶中的剩余令牌数大于或者等于该访问请求所需的令牌数,则可认为全局流量并未超过限流阈值。接下来,流量控制模块判断第二令牌桶中的剩余令牌数是否小于访问请求所需的令牌数;若第二令牌桶中的剩余令牌数大于或者等于访问请求所需的令牌数,则执行该访问请求,并从第二令牌桶的剩余令牌数中减去该访问请求所需的令牌数。若第二令牌桶中的剩余令牌数小于访问请求所需的令牌数,则对所述访问请求进行访问异常处理。
在上述实施例中,实现了精准的全局限流、单用户限流以及全局和单用户同时限流。在全局限流和单用户限流并存的场景中,流量控制模块可支持“超卖”限流。即,单用户流量阈值与用户数量的乘积得到的流量总数,大于全局流量阈值。例如,假设,全局流量阈值为30M/s,存储节点被30个用户共享时,可设置单用户流量阈值为5M/s。相对于将单用户流量阈值设置为1M/s的方案而言,这种“超卖”的方案,可充分利用存储节点的资源,可优先保证部分用户具有较好的服务质量。
在本申请的上述以及下述各实施例中,在多种限流的场景下,当访问请求所需的令牌数不足时,流量控制模块对访问请求进行访问异常处理。可选地,该访问异常处理可包括:将访问请求添加至等待队列中,直至令牌桶中累计足够可用的令牌数。在这种实施方式中,可预先设置等待时长阈值,例如可将等待时长阈值设置为10s、5s等。若访问请求在等待队列中的等待时长超过预设的等待时长阈值后,令牌数仍旧不足,则可进行超时重试。
可选地,流量控制模块对问请求进行访问异常处理,还可包括:向客户端返回访问请求出现错误的提示信息。其中,该提示消息可包含访问繁忙、服务器当前压力大的信息,并可提示用户稍后重试。
可选地,流量控制模块对访问请求进行访问异常处理,可包括:对目标数据的数据分片进行访问,该数据分片的大小与第二令牌桶中的剩余令牌数对应。在这种实施方式中,可将用户的可访问数据进行分片处理,得到多个数据分片。其中,每个分片的大小可根据需求设置。例如,在一些实施例中,可设置每个数分片的大小为20B、50B或者100B等等。当第二令牌桶中的剩余令牌数与数据分片的大小匹配时,则可从访问请求对应的目标数据中读取一个数据分片。基于这种实施方式,可在流量限制的情况下,采用分批次的方式访问目标数据,满足部分场景的数据访问需求。
在上述各实施例的基础上,本申请实施例还提供了一种热加载限流策略的方式,该热加载限流策略的操作可基于存储节点中的服务质量配置模块实现。可选地,根据访问请求对应的数据量以及预设的流量阈值,对访问请求进行流量控制之前,存储节点可基于服务质量配置模块读取为存储节点动态配置的流量策略文件。其中,该流量策略文件可以是开发人员通过开发终端下发的。
存储节点获取到流量策略文件后,可对该流量策略文件进行解析,以从流量策略文件中,解析得到流量控制操作的启动指令。其中,启动指令可包括:全局流量控制指令,和/或,单用户流量控制指令。开发人员可根据流量控制的需求,在流量策略文件中配置全局流量控制指令、单用户流量控制指令或者同时配置全局流量控制指令和单用户流量控制指令。
若启动指令包括全局流量控制指令,则存储节点可根据全局流量控制指令,开启存储节点的全局流量控制。在全局流量控制开启后,可基于前述实施例A执行流量控制方法。
若启动指令包括单用户流量控制指令,则存储节点可根据该全局流量控制指令,开启存储节点的单个用户流量控制。在单用户流量控制开启后,可基于前述实施例B执行流量控制方法。
若启动指令包括全局流量控制指令以及单用户流量控制指令,则存储节点可根据这两种启动指令,开启存储节点的全局流量控制以及单个用户流量控制。在全局流量控制以及单用户流量控制开启后,可基于前述实施例C执行流量控制方法。
在一些可选的实施例中,流量策略文件除可配置是否开启流量控制的指令外,还可进一步配置流量控制类型和/或流量控制阈值。其中,其中,流量控制类型,可包括:写入流量控制和/或读取流量控制。流量控制阈值,包括:全局流量阈值,和/或,单用户流量阈值。
基于此,存储节点在读取为存储节点动态配置的流量策略文件之后,还可进一步从该流量策略文件中,解析得到流量控制类型,和/或,流量控制阈值。基于该流量控制类型,可启动写入流量控制操作,或者,读取流量控制操作,或者同时启动写入流量控制操作以及读取流量控制操作。其中,该全局流量阈值可用于前述实施例记载的全局流量控制操作中,该单用户流量阈值可用于前述实施例记载的单用户流量控制操作中,不再赘述。
基于上述实施例,可通过流量策略文件对流量控制的配置参数进行灵活变动,可在对存储节点进行重启的情况下实现流量控制策略的热更新,进一步降低了对用户侧的应用产生的影响。
图5以存储节点实现为etcd节点为例,示意了基于etcd节点实现的流量控制方法。如图5所示,etcd节点中新增服务质量管理模块、流量控制模块、数据量索引模块以及服务质量配置模块。其中,服务质量管理模块与etcd节点中的etcd backend(etcd的存储引擎)连接,且与新增的流量控制模块和服务质量配置模块连接。其中,流量控制模块与新增的数据量索引模块连接。
在向用户提供数据库服务时,etcd节点可通过远程过程调用接口(gRPC API)接收客户端发送的访问请求。接收到访问请求后,etcd节点中的etcd backend可将访问请求发送至服务质量管理模块。服务质量管理模块可调用流量控制模块,从数据量索引模块中查询数据量索引信息,得到该访问请求的数据量。
获取到访问请求的数据量后,服务质量管理模块可调用流量控制模块,基于令牌桶算法进行限流控制。在限流控制之前,服务质量管理模块可从服务质量管理模块中,热加载流量控制的策略文件。该策略文件中,可指示限流方式,即全局限流、单用户限流或者同时进行全局限流和单用户限流。该策略文件中,还可指示限流阈值。服务质量管理模块从策略文件中解析到限流方式以及限流阈值后,可根据限流方式启动对应的限流操作,并调用流量控制模块根据限流阈值以及查询到的数据量进行限流计算。
若流量控制模块的计算结果指示无限流,则可读取访问请求所需的数据,并返回操作结果。若流量控制模块的计算结果指示有限流,则可将该访问请求加入等待队列中进行排队等待,并判断该访问请求是否在延迟范围内排到服务。若为是,则返回操作结果;若为否,则可返回限流错误码,或者进行超时重试,不在赘述。
在这种实施方式中,将限流功能内聚到了etcd节点内部,可避免引入额外的数据库代理组件,降低了限流功能的部署成本;同时,未引入额外的数据库代理组件的情况下,缩短了用户的数据请求的链路长度,有利于在限流功能故障时快速进行问题排查。
除前述实施例提供的流量控制方法之外,本申请实施例还提供了一种数据库集群的资源保障方法。该数据库集群包括多个存储节点,任一存储节点的存储资源被多个用户共享使用。其中,该数据库集群,可以是etcd集群、Oracle集群、redis集群等数据库集群,本实施例包含但不限于此。数据库集群可以部署在公有云上,以向多用户提供远端的数据库服务。存储节点,可以是上述数据库集群中的一台部署有存储系统的服务器。
其中,为保障数据库集群能向多个共享用户提供高质量的数据库服务,数据库集群中的每个节点可执行前述各实施例记载的流量控制方法。即,数据库集群中的任一存储节点接收用户的访问请求,并从数据量索引信息中,查询该访问请求对应的数据量。其中,该数据量索引信息,用于保存该存储节点的不同用户在该存储节点中的可访问数据的数据量。获取到访问请求对应的数据量后,存储节点可根据访问请求对应的数据量以及预设的流量阈值,对该访问请求进行流量控制。
当数据库集群中的每个节点均执行上述流量控制方法后,每个存储节点可存储节点基于访问请求对应的真实数据量进行压力预测,可预测得到访问请求产生的真实压力,从而有利于根据不同的访问请求之间的差异性,精准地进行流量控制。当每个节点均实现精准的流量控制操作后,数据库集群的服务性能将得到良好保障。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤204的执行主体可以为设备A;又比如,步骤201和202的执行主体可以为设备A,步骤203的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5示意了本申请一示例性实施例提供的服务器的结构示意图,该服务器适用于前述实施例提供的流量控制方法。如图5所示,该服务器包括:存储器501、处理器502以及通信组件503。
其中,存储器501可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
存储器501,用于存储计算机程序,并可被配置为存储其它各种数据以支持在服务器上的操作。这些数据的示例包括用于在服务器上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
处理器502,与存储器501耦合,用于执行存储器501中的计算机程序,以用于:通过通信组件503接收用户的访问请求;从数据量索引信息中,查询所述访问请求对应的数据量;所述数据量索引信息,用于保存所述存储节点的不同用户在所述存储节点中的可访问数据的数据量;根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制。
进一步可选地,所述数据量索引信息,采用采用键-值存储结构进行存储;处理器502在从数据量索引信息中,查询所述访问请求对应的数据量,包括:根据所述用户的标识以及所述访问请求携带的数据标识,确定待查询的键;在所述数据量索引信息中,查询所述待查询的健对应的值,得到所述访问请求的数据量。
进一步可选地,处理器502在根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制时,具体用于:确定令牌桶,所述令牌桶的令牌投放速率与所述流量阈值对应;根据所述访问请求对应的数据量,计算所述访问请求所需的令牌数;根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制。
进一步可选地,所述流量阈值包括:所述存储节点的全局流量阈值,或者,所述用户的单用户流量阈值;处理器502在根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制时,具体用于:判断所述令牌桶中的剩余令牌数是否小于所述访问请求所需的令牌数;若所述令牌桶中的剩余令牌数小于所述访问请求所需的令牌数,则对所述访问请求进行访问异常处理。
进一步可选地,所述令牌桶包括:第一令牌桶以及第二令牌桶;所述第一令牌桶的令牌投放速率与所述存储节点的全局流量阈值对应;所述第二令牌桶的令牌投放速率与所述用户的单用户流量阈值对应;处理器502在根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制时,具体用于:判断所述第一令牌桶中的剩余令牌数是否小于所述访问请求所需的令牌数;若所述第一令牌桶中的剩余令牌数大于或者等于所述访问请求所需的令牌数,则判断所述第二令牌桶中的剩余令牌数是否小于所述访问请求所需的令牌数;若所述第二令牌桶中的剩余令牌数小于所述访问请求所需的令牌数,则对所述访问请求进行访问异常处理。
进一步可选地,处理器502在对所述访问请求进行访问异常处理时,具体用于:将所述访问请求添加至等待队列中;或者,返回所述访问请求出现错误的提示信息;或者,对所述访问请求对应的目标数据的数据分片进行访问,所述数据分片的大小与所述第二令牌桶中的剩余令牌数对应。
进一步可选地,处理器502在根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制之前,还用于:读取为所述存储节点动态配置的流量策略文件;从所述流量策略文件中,解析得到流量控制操作的启动指令,所述启动指令包括:全局流量控制指令,和/或,单用户流量控制指令;根据所述启动指令,开启所述存储节点的全局流量控制,和/或,单个用户流量控制。
进一步可选地,处理器502在读取为所述存储节点动态配置的流量策略文件之后,还用于:从所述流量策略文件中,解析得到流量控制类型,和/或,流量控制阈值;其中,所述流量控制类型,包括:写入流量控制和/或读取流量控制;其中,所述流量控制阈值,包括:全局流量阈值,和/或,单用户流量阈值。
图5中仅示意性给出部分组件,并不意味着服务器只包括图5所示组件。
其中,通信组件503被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术和其他技术来实现。
本实施例中,服务器接收到用户的访问请求后,可从数据量索引信息中,查询该访问请求对应的数据量,并可根据查询到的数据量以及预设的流量阈值,对访问请求进行流量控制。基于这种实施方式,一方面,存储节点可自主实现访问压力的预测,极大降低了流量控制所需的计算资源的成本。另一方面,存储节点基于访问请求对应的真实数据量进行压力预测,可预测得到访问请求产生的真实压力,从而有利于根据不同的访问请求之间的差异性,精准地进行流量控制。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由服务器执行的各步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种流量控制方法,其特征在于,包括:
存储节点接收用户的访问请求;
从数据量索引信息中,查询所述访问请求对应的数据量;所述数据量索引信息,用于保存所述存储节点的不同用户在所述存储节点中的可访问数据的数据量;
根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制;所述流量阈值,包括:全局流量控制对应的全局流量阈值,以及单个用户流量控制对应的单用户流量阈值;
根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制,包括:确定令牌桶,所述令牌桶的令牌投放速率与所述流量阈值对应;根据所述访问请求对应的数据量,计算所述访问请求所需的令牌数;根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制。
2.根据权利要求1所述的方法,其特征在于,所述数据量索引信息,采用采用键-值存储结构进行存储;从数据量索引信息中,查询所述访问请求对应的数据量,包括:
根据所述用户的标识以及所述访问请求携带的数据标识,确定待查询的键;
在所述数据量索引信息中,查询所述待查询的健对应的值,得到所述访问请求的数据量。
3.根据权利要求1所述的方法,其特征在于,根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制,包括:
判断所述令牌桶中的剩余令牌数是否小于所述访问请求所需的令牌数;
若所述令牌桶中的剩余令牌数小于所述访问请求所需的令牌数,则对所述访问请求进行访问异常处理。
4.根据权利要求1所述的方法,其特征在于,所述令牌桶包括:第一令牌桶以及第二令牌桶;所述第一令牌桶的令牌投放速率与所述存储节点的全局流量阈值对应;所述第二令牌桶的令牌投放速率与所述用户的单用户流量阈值对应;
根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制,包括:
判断所述第一令牌桶中的剩余令牌数是否小于所述访问请求所需的令牌数;
若所述第一令牌桶中的剩余令牌数大于或者等于所述访问请求所需的令牌数,则判断所述第二令牌桶中的剩余令牌数是否小于所述访问请求所需的令牌数;
若所述第二令牌桶中的剩余令牌数小于所述访问请求所需的令牌数,则对所述访问请求进行访问异常处理。
5.根据权利要求1-4任一项所述的方法,其特征在于,根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制之前,还包括:
读取为所述存储节点动态配置的流量策略文件;
从所述流量策略文件中,解析得到流量控制操作的启动指令,所述启动指令包括:全局流量控制指令,和/或,单用户流量控制指令;
根据所述启动指令,开启所述存储节点的全局流量控制和/或单个用户流量控制。
6.根据权利要求5所述的方法,其特征在于,读取为所述存储节点动态配置的流量策略文件之后,还包括:
从所述流量策略文件中,解析得到流量控制类型,和/或,流量控制阈值;
其中,所述流量控制类型,包括:写入流量控制和/或读取流量控制;
其中,所述流量控制阈值,包括:全局流量阈值,和/或,单用户流量阈值。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述存储节点,为etcd集群中的etcd节点。
8.一种数据库集群资源保障方法,其特征在于,所述数据库集群包括多个存储节点,任一存储节点的存储资源被多个用户共享使用;所述方法包括:
所述数据库集群中的任一存储节点接收用户的访问请求;
从数据量索引信息中,查询所述访问请求对应的数据量;所述数据量索引信息,用于保存所述存储节点的不同用户在所述存储节点中的可访问数据的数据量;
根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制;所述流量阈值,包括:全局流量控制对应的全局流量阈值,以及单个用户流量控制对应的单用户流量阈值;
根据所述访问请求对应的数据量以及预设的流量阈值,对所述访问请求进行流量控制,包括:确定令牌桶,所述令牌桶的令牌投放速率与所述流量阈值对应;根据所述访问请求对应的数据量,计算所述访问请求所需的令牌数;根据所述令牌桶的剩余令牌数以及所述访问请求所需的令牌数,采用令牌桶算法,对所述访问请求进行流量控制。
9.一种服务器,其特征在于,包括:存储器、处理器以及通信组件;
所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令以用于:执行权利要求1-8任一项所述的方法中的步骤。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被处理器执行时能够实现权利要求1-8任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111039052.6A CN113965519B (zh) | 2021-09-06 | 2021-09-06 | 流量控制、集群资源保障方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111039052.6A CN113965519B (zh) | 2021-09-06 | 2021-09-06 | 流量控制、集群资源保障方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113965519A CN113965519A (zh) | 2022-01-21 |
CN113965519B true CN113965519B (zh) | 2024-01-26 |
Family
ID=79461148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111039052.6A Active CN113965519B (zh) | 2021-09-06 | 2021-09-06 | 流量控制、集群资源保障方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965519B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116774B (zh) * | 2022-01-28 | 2022-06-28 | 北京安帝科技有限公司 | 日志数据的查询方法及装置 |
CN114615202A (zh) * | 2022-03-10 | 2022-06-10 | 中国银行股份有限公司 | 流量访问控制方法及装置 |
CN116055810A (zh) * | 2023-01-17 | 2023-05-02 | 阿里云计算有限公司 | 音视频播放方法、装置、系统、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101674247A (zh) * | 2009-10-21 | 2010-03-17 | 中兴通讯股份有限公司 | 一种对业务流量进行监管的方法及其装置 |
CN108449606A (zh) * | 2018-03-28 | 2018-08-24 | 武汉斗鱼网络科技有限公司 | 一种弹幕限制方法、装置、服务器及介质 |
CN109194539A (zh) * | 2018-08-13 | 2019-01-11 | 中国平安人寿保险股份有限公司 | 数据管控方法、装置、计算机设备及存储介质 |
CN109246026A (zh) * | 2018-08-13 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 流量管控方法、装置、设备及存储介质 |
CN109361733A (zh) * | 2018-09-14 | 2019-02-19 | 新华三技术有限公司成都分公司 | 服务质量控制方法及装置 |
CN110213173A (zh) * | 2019-06-06 | 2019-09-06 | 北京百度网讯科技有限公司 | 流量控制方法及装置、系统、服务器、计算机可读介质 |
CN110430142A (zh) * | 2019-08-16 | 2019-11-08 | 北京百度网讯科技有限公司 | 用于控制流量的方法和装置 |
CN111030936A (zh) * | 2019-11-18 | 2020-04-17 | 腾讯云计算(北京)有限责任公司 | 网络访问的限流控制方法、装置及计算机可读存储介质 |
CN111245732A (zh) * | 2018-11-29 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 一种流量控制方法、装置及设备 |
CN111866101A (zh) * | 2020-07-08 | 2020-10-30 | 深圳市欢太科技有限公司 | 访问请求处理方法及装置、存储介质和电子设备 |
CN113179222A (zh) * | 2021-04-30 | 2021-07-27 | 康键信息技术(深圳)有限公司 | 热点数据的限流控制方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671445B1 (en) * | 2012-07-17 | 2014-03-11 | Netapp, Inc. | Method and system for transferring replicated information from source storage to destination storage |
US9413680B1 (en) * | 2012-09-26 | 2016-08-09 | Amazon Technologies, Inc. | Multi-tenant throttling approaches |
US11496475B2 (en) * | 2019-01-04 | 2022-11-08 | Ping Identity Corporation | Methods and systems for data traffic based adaptive security |
-
2021
- 2021-09-06 CN CN202111039052.6A patent/CN113965519B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101674247A (zh) * | 2009-10-21 | 2010-03-17 | 中兴通讯股份有限公司 | 一种对业务流量进行监管的方法及其装置 |
CN108449606A (zh) * | 2018-03-28 | 2018-08-24 | 武汉斗鱼网络科技有限公司 | 一种弹幕限制方法、装置、服务器及介质 |
CN109194539A (zh) * | 2018-08-13 | 2019-01-11 | 中国平安人寿保险股份有限公司 | 数据管控方法、装置、计算机设备及存储介质 |
CN109246026A (zh) * | 2018-08-13 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 流量管控方法、装置、设备及存储介质 |
CN109361733A (zh) * | 2018-09-14 | 2019-02-19 | 新华三技术有限公司成都分公司 | 服务质量控制方法及装置 |
CN111245732A (zh) * | 2018-11-29 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 一种流量控制方法、装置及设备 |
CN110213173A (zh) * | 2019-06-06 | 2019-09-06 | 北京百度网讯科技有限公司 | 流量控制方法及装置、系统、服务器、计算机可读介质 |
CN110430142A (zh) * | 2019-08-16 | 2019-11-08 | 北京百度网讯科技有限公司 | 用于控制流量的方法和装置 |
CN111030936A (zh) * | 2019-11-18 | 2020-04-17 | 腾讯云计算(北京)有限责任公司 | 网络访问的限流控制方法、装置及计算机可读存储介质 |
CN111866101A (zh) * | 2020-07-08 | 2020-10-30 | 深圳市欢太科技有限公司 | 访问请求处理方法及装置、存储介质和电子设备 |
CN113179222A (zh) * | 2021-04-30 | 2021-07-27 | 康键信息技术(深圳)有限公司 | 热点数据的限流控制方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
基于负载均衡的数据库集群对气象数据的共享服务;乔梁 等;干旱气象(03);全文 * |
服务网格下流量控制系统的设计与实现;程帅;《中国优秀硕士学位论文全文数据库 信息科技辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113965519A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113965519B (zh) | 流量控制、集群资源保障方法、设备及存储介质 | |
US10725826B1 (en) | Serializing duration-limited task executions in an on demand code execution system | |
US11010188B1 (en) | Simulated data object storage using on-demand computation of data objects | |
US10445140B1 (en) | Serializing duration-limited task executions in an on demand code execution system | |
US9830101B2 (en) | Managing data storage in a set of storage systems using usage counters | |
US20210004258A1 (en) | Method and Apparatus for Creating Virtual Machine | |
US9405757B2 (en) | File storage system, apparatus, and file access method | |
CN105100146B (zh) | 数据存储方法、装置及系统 | |
CN111522636B (zh) | 应用容器的调整方法、调整系统、计算机可读介质及终端设备 | |
JP6754734B2 (ja) | Ranスライスにおけるリソース管理装置及びranスライスにおけるリソース管理方法 | |
KR20200012981A (ko) | 네트워크 슬라이스 관리 방법, 디바이스 및 컴퓨터 판독 가능 저장 매체 | |
EP3905589A1 (en) | Slice resource deployment method and apparatus, and slice manager and computer storage medium | |
US11132229B2 (en) | Method, storage medium storing instructions, and apparatus for implementing hardware resource allocation according to user-requested resource quantity | |
US20200104177A1 (en) | Resource allocation system, management device, method, and program | |
US20200274943A1 (en) | Data Processing Method and Apparatus, Server, and Controller | |
CN112689007B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
US11399340B2 (en) | Controller of a radio access network | |
CN111435943A (zh) | 数据处理方法、设备、系统及存储介质 | |
US11144359B1 (en) | Managing sandbox reuse in an on-demand code execution system | |
US20220103500A1 (en) | Method and device for managing group member, and method for processing group message | |
CN114595167A (zh) | 分布式缓存系统、方法以及装置 | |
US10749942B2 (en) | Information processing system and method | |
CN108228323B (zh) | 基于数据本地性的Hadoop任务调度方法及装置 | |
CN111405313B (zh) | 存储流媒体数据的方法和系统 | |
CN107526530B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40067020 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |