CN110753005A - 限速方法、装置及系统、电子设备和计算机可读存储介质 - Google Patents
限速方法、装置及系统、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110753005A CN110753005A CN201910988539.5A CN201910988539A CN110753005A CN 110753005 A CN110753005 A CN 110753005A CN 201910988539 A CN201910988539 A CN 201910988539A CN 110753005 A CN110753005 A CN 110753005A
- Authority
- CN
- China
- Prior art keywords
- target
- rate
- time period
- limiting unit
- speed limiting
- 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.)
- Pending
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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
Abstract
本公开实施例提供了一种限速方法、装置及系统、电子设备和计算机可读存储介质。该方法包括:获取当前待限速的目标网络流的限制速率;获得用于对目标网络流进行限速的目标从节点及其目标限速单元;获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量;根据当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率;将下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,以便于各目标限速单元的令牌桶在下一第一时间段内采用下一令牌生成速率生成令牌,使得流出网关集群的目标网络流的流量小于限制速率。
Description
技术领域
本公开涉及计算机和通信技术领域,具体而言,涉及一种限速方法、装置及系统、电子设备和计算机可读存储介质。
背景技术
在开发高并发系统时,通常采用缓存、降级和限流/限速等技术来保护系统。其中,限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率,则可以拒绝服务、进行排队或等待、降级等处理。
现有技术中,通常采用单服务器(单机)进行限速,但是单机版的处理性能不能超过物理机本身的性能,因此,单机版的限速性能无法满足一些业务需求。
因此,需要一种新的限速方法、装置及系统、电子设备和计算机可读存储介质。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例提供一种限速方法、装置及系统、电子设备和计算机可读存储介质,通过采用分布式主从模式提高限速性能。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一方面,提供一种限速方法,应用于网关集群的主节点。所述方法包括:获取当前待限速的目标网络流的限制速率;获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元;获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量;根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率;将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,以便于各目标限速单元的令牌桶在所述下一第一时间段内采用所述下一令牌生成速率生成令牌,使得流出所述网关集群的目标网络流的流量小于所述限制速率。
根据本公开实施例的一方面,提供一种限速装置,应用于网关集群的主节点。所述装置包括:待限速流信息获取模块,配置为获取当前待限速的目标网络流的限制速率;节点限速单元获得模块,配置为获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元;限速流入流量获取模块,配置为获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量;令牌生成速率获得模块,配置为根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率;令牌生成速率下发模块,配置为将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,以便于各目标限速单元的令牌桶在所述下一第一时间段内采用所述下一令牌生成速率生成令牌,使得流出所述网关集群的目标网络流的流量小于所述限制速率。
根据本公开实施例的一方面,提供了一种限速系统,所述系统包括主节点和从节点;其中,所述主节点配置为获取当前待限速的目标网络流的限制速率,并获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元,所述从节点包括所述目标从节点;所述目标从节点配置为在当前第一时间段内,每隔第二时间段向所述主节点上传流入各目标限速单元的目标网络流的流入流量;所述主节点还配置为根据接收到的所述当前第一时间段内每隔第二时间段流入各目标限速单元的目标网络流的流入流量,获得所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量,并根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率,将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点;所述目标从节点还配置为根据接收到的所述下一第一时间段内各目标限速单元的下一令牌生成速率来生成各目标限速单元的令牌桶中的令牌,使得流出所述系统的目标网络流的流量小于所述限制速率。
根据本公开实施例的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的限速方法。
根据本公开实施例的一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的限速方法。
在本公开的一些实施例所提供的技术方案中,一方面,通过分布式主从模式,主节点维护当前待限速的目标网络流的限制速率,并获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元,且获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量,从而使得主节点能够根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率,主节点将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,以便于各目标限速单元的令牌桶在所述下一第一时间段内采用所述下一令牌生成速率生成令牌,使得流出所述网关集群的目标网络流的流量小于所述限制速率,即由主节点对从节点进行令牌生成速率的分配和下发,以便于从节点对自身的令牌桶进行维护,以达到网络流的总发送速率不大于限定的限制速率。另一方面,采用主/从架构,能够实现更快时间的同步,更高精度的、毫秒级别的限速。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本公开实施例的限速方法或限速装置的示例性系统架构的示意图;
图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图;
图3示意性示出了根据本公开的一实施例的限速方法的流程图;
图4示出了图3中所示的步骤S330在一实施例中的处理过程示意图;
图5示出了图3中所示的步骤S340在一实施例中的处理过程示意图;
图6示出了图3中所示的步骤S340在另一实施例中的处理过程示意图;
图7示出了图3中所示的步骤S350在一实施例中的处理过程示意图;
图8示意性示出了根据本公开的另一实施例的限速方法的流程图;
图9示意性示出了根据本公开的一实施例的VPC流量限速应用场景示意图;
图10示意性示出了相关技术中采用的VPC流量限速单机版本的示意图;
图11示意性示出了根据本公开的一实施例的VPC流量限速分布式实现示意图;
图12示意性示出了根据本公开的一实施例的基于速率分配的双机热备份架构的分布式限速示意图;
图13示意性示出了根据本公开的一实施例的软件结构图;
图14示意性示出了根据本公开的一实施例的限速装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本公开实施例的限速方法或限速装置的示例性系统架构100的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一种或多种,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机、可穿戴智能设备、智能家居设备和台式计算机、数字电影放映机等等。
服务器105可以是提供各种服务的服务器。例如用户利用终端设备103(也可以是终端设备101或102)向服务器105发送各种请求。服务器105可以基于该请求中携带的相关信息,获取响应于所述请求的反馈信息给终端设备103,进而用户可以在终端设备103上查看显示的反馈信息。在一些场景中,需要进行限流。以秒杀为例,可能会有百万级别的用户同时进行抢购,而被抢购的商品数量远远小于用户数量。如果这些请求都进入队列或者查询缓存,只会造成资源浪费,给服务器带来巨大压力,此时可以对秒杀场景进行限流。就秒杀接口来说,当访问频率或者并发请求超过其承受范围的时候,这时候考虑限流来保证接口的可用性,以防止非预期的请求对系统压力过大而引起的系统瘫痪。
又如终端设备103(也可以是终端设备101或102)可以是智能电视、VR(VirtualReality,虚拟现实)/AR(Augmented Reality,增强现实)头盔显示器、或者其上安装有即时通讯、视频应用程序(application,APP)等的移动终端例如智能手机、平板电脑等,用户可以通过该智能电视、VR/AR头盔显示器或者该即时通讯、视频APP向服务器105发送各种请求。服务器105可以基于该请求,获取响应于所述请求的反馈信息返回给该智能电视、VR/AR头盔显示器或者该即时通讯、视频APP,进而通过该智能电视、VR/AR头盔显示器或者该即时通讯、视频APP将返回的反馈信息显示。
图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(CPU,Central Processing Unit)201,其可以根据存储在只读存储器(ROM,Read-Only Memory)202中的程序或者从储存部分208加载到随机访问存储器(RAM,Random Access Memory)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有系统操作所需的各种程序和数据。CPU 201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的方法和/或装置中限定的各种功能。
需要说明的是,本公开所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF(RadioFrequency,射频)等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的模块和单元也可以设置在处理器中。其中,这些模块和单元的名称在某种情况下并不构成对该模块和单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3或图4或图5或图6或图7或图8所示的各个步骤。
相关技术中,常用的限流算法有漏桶(Leaky Bucket)算法和令牌桶(TokenBucket)算法。
漏桶算法的原理是:流量会进入一个逻辑上的桶里面,这个桶会有一个恒定的速率对桶中流量进行处理,相当于将流量从桶中“漏出”。这个桶也有深度,当进入流量大于桶本身的深度时,会直接丢弃。漏桶算法能强行限制数据的传输速率。
对于很多应用场景来说,除了要求能够限制数据的平均传输速率外,还要求允许某种程度的突发传输。这时候漏桶算法可能就不合适了,令牌桶算法更为适合。
令牌桶限制的是平均流入速率(允许突发请求,只要有令牌就可以处理,支持一次拿3个令牌、4个令牌等),并允许一定程度突发流量。令牌桶可以方便的改变速度,一旦需要提高速率,则按需提高放入桶中的令牌的速率。
相关技术中的令牌桶算法主要有单机版(例如,Linux HTB(Hierarchical TokenBucket,分层令牌桶))的令牌桶和基于Gossip协议(一种分布式同步协议)实现的分布式令牌桶。
单机版的令牌桶原理是:系统会以一个恒定的速率往桶中放入令牌,当有流量需要被处理时,需要从桶中得到令牌后才被允许处理,当桶里没有令牌时,则拒绝服务。令牌桶也有深度,用来储存多余的令牌,因此可以容忍一定的突发流量。令牌桶能够在限制数据的平均传输速率的同时还允许某种程度的突发传输。
单机版的令牌桶的问题在于性能,单机版的处理性能是不能超过物理机本身的性能的,单机版的限速性能可能无法满足一些业务需求。因此需要多机分布式限速系统。
基于Gossip协议的分布式令牌桶原理是:每个限速单元(Rate limiter)都会维护一个全局令牌桶以及全局令牌桶限制速率(对应一条流的总限制速率)。限速单元之间通过Gossip协议进行同步,使得所有的限速单元都知道进入的总流量大小,限速单元再通过总流量信息和全局令牌桶限制速率计算出一个流量丢弃率,从而达到分布式限速的目标。
基于Gossip协议的分布式令牌桶的限速性能较差,每一次的信息同步花费的时间较长,在有n(n为大于或等于2的正整数)台限速单元的情况下,每一次信息的同步需要经过log(n)轮才能完成,所以不能够满足高精度的要求。基于Gossip协议的分布式令牌桶的精度在秒(s)级别。
图3示意性示出了根据本公开的一实施例的限速方法的流程图。本公开实施例提供的方法可以由任意具备计算处理能力的电子设备执行,例如如图1中的终端设备101、102、103中的任意一个或多个和/或服务器105。在下面的举例说明中,以服务器105为执行主体进行示例说明。
本公开实施例中,所述方法可以应用于网关集群的主节点。所述网关集群中可以包括多台服务器(例如x86服务器,但本公开并不限定于此),本公开实施例采用分布式主从(Master/Slave)模式,即将所述网关集群中的服务器划分成主节点(例如,master服务器)和m(m为大于或等于1的正整数)个从节点(例如slave服务器),每个从节点可以包括k(k为大于或等于1的正整数,在下面的举例说明中以k=512为例进行说明,但本公开并不限定于此)个限速单元,且每个限速单元维护各自的一个本地令牌桶。
需要说明的是,虽然在下面的实施例中以网关集群中的一个节点对应一台物理上的服务器为例,但本公开并不限定于此,在其他实施例中,一个节点也可以对应多台服务器,或者,一台服务器可以对应多个节点。
如图3所示,本公开实施例提供的限速方法可以包括以下步骤。
在步骤S310中,获取当前待限速的目标网络流的限制速率。
在一个网络系统中,可能会有N(N为大于或等于1的正整数)条网络流,N大约是百万级别的。假设网关集群中有M(M为大于或等于1的正整数,这里假设为十几台左右)台slave服务器,每台slave服务器中包括512个限速单元,则总的物理限速单元数量512*M远小于网络流N的数量。
不过通常情况下,这些网络流不是每个时刻都需要进行限速,网管或者一个基于规则的系统可以根据监控到的各条流的状态,确定当前需要给哪些流进行限速。监控的频率可以是分钟级别的。当发现某条流实际流出的流量总是超出设定的阈值(例如20Gbps(Gbits per second,G比特率))时,可以对这条流进行限速。所以,每过一段时间T(T为大于0的实数,可以是分钟级别的),都会产生一批(假设为N1,N1为大于或等于0且小于或等于N的正整数)待限速的网络流,需要对这一批网络流进行限速。在“需要限速的流不多”这个前提下,最多可以同时满足N1=512*M条流的限速要求。
本公开实施例中,在主节点中可以存储当前待限速的每条网络流各自的限制速率。这里以其中的一条即目标网络流为例进行举例说明,其他待限速的网络流的限速与此类似。
在步骤S320中,获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元。
本公开实施例中,主节点可以获知使用网关集群中的哪些slave服务器(目标从节点)及这些slave服务器上的哪些限速单元(目标限速单元)来对目标网络流进行限速处理。可以使用一台slave服务器上的一个或多个限速单元对所述目标网络流进行限速,也可以使用多台slave服务器上的多个限速单元对所述目标网络流进行限速。
在步骤S330中,获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量。
本公开实施例中,主节点每隔一个round(第一时间段,round为大于0的实数)会计算一次流入各目标限速单元的目标网络流的总流入流量。主节点在当前round获取流入各目标限速单元的目标网络流的总流入流量。
在步骤S340中,根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率。
本公开实施例中,主节点可以根据当前round内流入各目标限速单元的目标网络流的总流入流量和所述目标网络流的限制速率(假设为R,R为大于0的实数),生成下一round内各目标限速单元的令牌桶的下一令牌生成速率。
在步骤S350中,将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,以便于各目标限速单元的令牌桶在所述下一第一时间段内采用所述下一令牌生成速率生成令牌,使得流出所述网关集群的目标网络流的流量小于所述限制速率。
本公开实施例中,当主节点生成下一round内各目标限速单元的令牌桶的下一令牌生成速率后,可以将各目标限速单元的下一令牌生成速率分别下发至各目标限速单元对应的各目标从节点。在当前round内,各目标从节点的各目标限速单元根据其相应的当前令牌生成速率生成各自的本地令牌桶中的令牌,在下一round内,各目标从节点的各目标限速单元更新其令牌生成速率为相应的下一令牌生成速率,并根据相应的下一令牌生成速率生成各自的本次令牌桶中的令牌。
对于每个目标限速单元,在每个round内,会以一个相应的令牌生成速率往其对应的本地令牌桶里放入令牌,如果接收到该目标网络流的一个请求的报文,则先从其令牌桶里获取令牌,当令牌桶中有足够的令牌,则该报文可以被继续发送下去,同时令牌桶中的令牌量按报文的长度做相应的减少;当令牌桶中的令牌不足时,则该报文将不能被发送,只有等到对应的令牌桶中生成了新的令牌,报文才可以发送。这就可以限制报文的流量只能小于或等于令牌生成的速度,达到限制流量的目的。
其中,当令牌不足时,报文可以被丢弃;也可以排放在队列中以便当令牌桶中累积了足够多的令牌时再传输;还可以继续发送,但需要做特殊标记,网络过载的时候将这些特殊标记的包丢弃。
本公开实施方式提供的限速方法,一方面,通过分布式主从模式,主节点维护当前待限速的目标网络流的限制速率,并获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元,且获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量,从而使得主节点能够根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率,主节点将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,以便于各目标限速单元的令牌桶在所述下一第一时间段内采用所述下一令牌生成速率生成令牌,使得流出所述网关集群的目标网络流的流量小于所述限制速率,即由主节点对从节点进行令牌生成速率的分配和下发,以便于从节点对自身的令牌桶进行维护,以达到网络流的总发送速率不大于限定的限制速率。另一方面,采用主/从架构,能够实现更快时间的同步,更高精度的、毫秒级别的限速。
图4示出了图3中所示的步骤S330在一实施例中的处理过程示意图。如图4所示,本公开实施例中,上述步骤S330可以进一步包括以下步骤。
在步骤S331中,在所述当前第一时间段内,每隔第二时间段(tick)接收各目标从节点上传的流入各目标限速单元的目标网络流的流入流量。
在示例性实施例中,所述第一时间段可以大于所述第二时间段,所述第二时间段可以大于所述网关集群中任意两个节点之间(主节点和从节点之间,从节点和从节点之间)的时延。
进一步的,round时长可以大于tick的10倍。例如tick=1ms,round=100ms,但本公开并不限定于此,可以根据实际需求进行设定。
在步骤S332中,根据所述当前第一时间段内每隔第二时间段流入各目标限速单元的目标网络流的流入流量,获得所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量。
本公开实施例中,每台slave服务器每隔一个tick的时间向master服务器发送请求并汇报其中的每个限速单元上的网络流的状态(例如,在该tick内流入各个限速单元的网络流的流入流量),master服务器接收到各台slave服务器上报的信息后,对其进行汇总整理,每隔一个round的时间将该round时间段内的各个tick时间接收到的同一网络流的流入流量进行统计,获得该round时间段内流入各限速单元的该网络流的总流入流量。
例如,假设目标网络流被分配至第一目标从节点(标记为slave1)的第一目标限速单元(标记为RL1)和第二目标从节点(标记为slave2)的第二目标限速单元(标记为RL2)进行限速。在当前round(假设时长为100ms)内,主节点每隔1ms接收到slave1上传的流入RL1的目标网络流的流量分别为tr1_1、tr1_2、…、tr1_100,主节点每隔1ms接收到slave2上传的流入RL2的目标网络流的流量分别为tr2_1、tr2_2、…、tr2_100,则在当前round内,流入RL1的目标网络流的总流入流量T1=tr1_1+tr1_2+…+tr1_100,流入RL2的目标网络流的总流入流量T2=tr2_1+tr2_2+…+tr2_100。
图5示出了图3中所示的步骤S340在一实施例中的处理过程示意图。本公开实施例中,假设所述目标限速单元包括第一目标限速单元和第二目标限速单元。如图5所示,本公开实施例中,上述步骤S340可以进一步包括以下步骤。
在步骤S341中,根据所述当前第一时间段内流入所述第一目标限速单元的目标网络流的总流入流量和流入所述第二目标限速单元的目标网络流的总流入流量,获得所述当前第一时间段内所述目标网络流的总流入流量。
例如,假设当前round内,流入第一目标限速单元的目标网络流的总流入流量为T1,流入所述第二目标限速单元的目标网络流的总流入流量为T2,则当前round内所述目标网络流的总流入流量为T1+T2。
在步骤S342中,根据所述当前第一时间段内流入所述第一目标限速单元的目标网络流的总流入流量、所述当前第一时间段内所述目标网络流的总流入流量和所述限制速率,获得所述第一目标限速单元的下一令牌生成速率。
例如,假设目标网络流的限制速率为R,则第一目标限速单元在下一round内的下一令牌生成速率可以为T1*R/(T1+T2)。
在步骤S343中,根据所述当前第一时间段内流入所述第二目标限速单元的目标网络流的总流入流量、所述当前第一时间段内所述目标网络流的总流入流量和所述限制速率,获得所述第二目标限速单元的下一令牌生成速率。
例如,第二目标限速单元在下一round内的下一令牌生成速率可以为T2*R/(T1+T2)。
在示例性实施例中,所述目标从节点可以包括第一目标从节点和第二目标从节点,所述第一目标限速单元可以位于所述第一目标从节点,所述第二目标限速单元可以位于所述第二目标从节点。
与一个流只能被同一个网关服务器处理的单机版的限速相比,本公开实施例提供的分布式架构能够实现更高性能的限速,在目标网络流的流量速度超过单机网卡性能时,可以使用多个限速单元对同一条流进行限速。本公开实施例基于网络x86网关集群的流量模式、业务模式、服务器性能、控制器性能、网络延迟和带宽性能等具体要求,实现可以部署的分布式高精度限速方案,方案目标是:使得分布于同一个网关集群内各个x86服务器上的若干满足特定特征(如同属同一个VRF(Virtual Routing Function,虚拟路由功能))的网络流的总发送速率不大于限定的阈值(限制速率)。这里的服务器性能是指通常一台机器仅有1536个限速单元(受CPU及内存大小限制)。每个限速单元最大支持20Gbps流量。单机的总带宽受限于网卡速率(例如40Gbps)。这里的流量模式是指随着各类云的发展,每条流的流量可能多于100Gbps,大于当前最大的单机网卡速率。这里的业务模式是指随着各类云的发展,预期网关集群需要处理的流的数量在10K以上。这里的控制器性能是指master有带宽限制,每个机器上传下载都需要带宽。这里定义了通信格式以及频率,以充分利用控制器带宽。
本公开实施例中,只要报文头部中包含相同的信息的都可以定义为属于同一条网络流,例如:同一个VXLAN(Virtual Extensible Local Area Network,虚拟扩展局域网)(VXLAN tag属性相同的),同一个VLAN(Virtual Local Area Network,虚拟局域网),同一个目的IP(Internet Protocol Address,网际协议地址)地址,同一个源IP地址,或以上条件的任意的组合:如从VPC(Virtual Private Cloud,虚拟私有云)1(一个VXLAN)到VPC2(另一个VXLAN),这条流需要匹配两个属性。
图6示出了图3中所示的步骤S340在另一实施例中的处理过程示意图。如图6所示,本公开实施例中,上述步骤S340可以进一步包括以下步骤。
在步骤S344中,若超过预定时间未接收到所述第一目标从节点发送的数据包,则根据所述当前第一时间段内流入所述第二目标限速单元的目标网络流的总流入流量,获得所述当前第一时间段内所述目标网络流的总流入流量。
其中,所述预定时间可以小于所述第一时间段。
本公开实施例中,主节点可以为各个从节点设置一个定时器(timer),若主节点超过timer设定的预定时间未接收到某个从节点上传的数据包,则主节点可以判定该从节点发生了宕机。此时,可以根据其他未宕机的从节点上传的信息来计算当前round内所述目标网络流的总流入流量。
例如,还是以目标网络流被分配至第一目标从节点的第一目标限速单元和第二目标从节点的第二目标限速单元进行限速为例,假设当前round内,第一目标从节点发生了宕机,则当前round内所述目标网络流的总流入流量为T2(当然,若还有其他目标从节点,则可以将其他目标从节点的目标网络流的总流入流量累加进来)。
在步骤S345中,根据所述当前第一时间段内流入所述第二目标限速单元的目标网络流的总流入流量、所述当前第一时间段内所述目标网络流的总流入流量和所述限制速率,获得所述第二目标限速单元的下一令牌生成速率。
例如,此时,在下一round内,为slave2的RL2分配的下一令牌生成速率可以为T2*R/T2=R。
图7示出了图3中所示的步骤S350在一实施例中的处理过程示意图。在分布式系统中,分布式一致性是一个非常重要的概念,它是指分布式系统的各个服务器都保持一个统一的状态(数据)。但是在分布式系统中,通常由于网络、系统状态等原因会导致某些服务不可用或者不可靠。这就需要一种分布式一致性的协议来保证系统在某些服务失败的情况下仍然整体可用。
如图7所示,本公开实施例中,上述步骤S350可以进一步包括以下步骤。
在步骤S351中,将包括各目标限速单元的下一令牌生成速率的速率表分别下发至所述网关集群内的各从节点。
在步骤S352中,接收各从节点响应于所接收到的速率表返回的版本请求。
在步骤S353中,响应于各从节点的版本请求,向各从节点发送包括所述速率表的版本号的消息,以便于各从节点根据所述消息更新其速率表的版本号。
本公开实施例中,在速率下发阶段,采用Multi_Paxos(一种分布式一致性协议)协议进行同步。
还是以上述的slave1和slave2对所述目标网络流进行限速为例,master服务器在当前round内计算好每个slave上的每个限速单元的下一round内的下一令牌生成速率后,将其整合到一张速率表中,这份速率表有一个版本号,假设为v(可以是数字,也可以是字符,或者两者的结合)。master服务器将该速率表分别下发至各个slave服务器。各个slave收到了速率表后,首先会对该速率表做本地的完整性校验,若收到了完整的速率表,则会向master服务器发送版本请求(Version Request)。这个对应于Multi_Paxos的ClientRequest阶段。master服务器在收到所有slave服务器发送的Version Request后,会向各个slave服务器分别下发包括所述速率表的版本号的消息Commit v,对应Multi_Paxos的Server发送Accept!阶段。各个slave服务器在收到Commit v这个消息后,会将执行的速率表的版本号设置为最新的。这样做保证了所有slave服务器在任何时候都使用同一个版本的令牌生成速率,保证了准确性。
需要说明的是,在其他实施例中,也可以采用其他的分布式一致性协议来完成同步,例如Raft协议、Basic Paxos协议等。Multi_Paxos相比其他协议更简单,只有两种角色,只需要两次发送接收过程,因此所需同步时间更短,同步简单且完成更快,因此可以得到更高的限速准确率,对于大规模集群更为友好。
本公开实施例采用基于速率分配的分布式限速,提供了高性能的分布式高精度限速。与Gossip协议同步比,采用Master/Slave主从架构,每个slave的流入流量信息上传至master,master负责整合所有slave的流入流量信息,计算并下发速率至各个slave,并在速率下发阶段采用Multi_Paxos协议进行同步,能够实现更快时间的同步,更高精度的、毫秒级别的限速。
图8示意性示出了根据本公开的另一实施例的限速方法的流程图。本公开实施例中,所述网关集群还可以包括热备份节点。该热备份节点可以另一个master服务器。如图8所示,与上述实施例相比,本公开实施例的不同之处在于,还可以进一步包括以下步骤。
在步骤S810中,所述主节点和所述热备份节点之间通过心跳进行监测。
在步骤S820中,当所述热备份节点监测到所述主节点宕机时,使所述热备份节点成为所述主节点。
本公开实施例中,通过主机热备份(HotStandby)的架构,使得系统能够有一定的容灾能力。
本公开实施方式进一步还提供了一种限速系统,所述系统可以包括主节点和从节点。
其中,所述主节点可以配置为获取当前待限速的目标网络流的限制速率,并获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元。所述从节点可以包括所述目标从节点。
所述目标从节点可以配置为在当前第一时间段内,每隔第二时间段向所述主节点上传流入各目标限速单元的目标网络流的流入流量。
所述主节点还可以配置为根据接收到的所述当前第一时间段内每隔第二时间段流入各目标限速单元的目标网络流的流入流量,获得所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量,并根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率,将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点。
所述目标从节点还可以配置为根据接收到的所述下一第一时间段内各目标限速单元的下一令牌生成速率来生成各目标限速单元的令牌桶中的令牌,使得流出所述系统的目标网络流的流量小于所述限制速率。
本公开实施例的限速系统是一种基于速率分配的分布式限速系统。可以通过使用多个限速单元对同一条网络流进行限速,以达到更高的性能。使用主从模式Master/Slave的分布式系统架构,将网关集群内的服务器(例如x86服务器,但本公开并不限定于此)分成master和slave两类,每台slave服务器中的每个限速单元都会为其限速的网络流维护一个令牌桶,而在master端会维护每个待限速的网络流各自的限制速率。每台slave服务器每隔一段时间(tick)会上传其中的各个限速单元的流入流量信息给master服务器,master服务器每隔一段时间(round)会根据收集到的各台slave服务器的各个限速单元的流入流量信息,按照比例,为这些slave服务器下发下一个round内,每台slave服务器中的各个限速单元的令牌桶的下一令牌生成速率。每台slave服务器中的各个限速单元会按照master服务器下发的下一令牌生成速率去维护自己的令牌桶。
在示例性实施例中,所述系统还可以包括:控制节点,可以配置为获取所述目标网络流的流信息,并根据所述流信息和各从节点的负载信息确定对所述目标网络流进行限速的目标从节点及其目标限速单元。控制节点可以进行slave服务器的负载均衡。
本公开实施例中,所述控制节点可以位于所述网关集群中独立于主节点和从节点的服务器上,但本公开并不限定于此,例如所述控制节点也可以设置于主节点上,或者任意一个或多个从节点上。
本公开实施例中,将架构分为管理面和控制面。下面先对管理面进行举例说明。
控制节点接收到一批待限速的流信息,假设该批待限速的流信息包括{<flow_id1,R1>,<flow_id2,R2>,…},其中flow_id1代表第一条待限速的流的编号,R1代表这条流所要求的限制速率;flow_id2代表第二条待限速的流的编号,R2代表这条流所要求的限制速率;其他以此类推,每条待限速的流有一个对应的限制速率。之后,控制节点会为每条待限速的流去配置物理限速单元,每条待限速的流可以被一个或多个限速单元进行限速。该多个限速单元可以位于一个或多个slave服务器上。配置好之后更新版本号。例如以flow_id1为目标网络流f1为例,控制节点为目标网络流f1分配若干个slave服务器以及这些slave服务器上的某些限速单元(假设每个slave服务器一共有512个限速单元)。
具体的,控制节点可以求解一个整数规划问题,以决定为待限速的流如何分配slave服务器。该整数规划问题的目标函数是最小化整个网关集群的最大的服务器负载,限制条件可以包括:单机流量限制;容灾要求限制;单机流数限制。该整数规划问题的控制变量可以为矩阵X,其中矩阵X中的第i行第j列的元素x_i,j可取值0或1,其中若取值为0,则表示第i条待限速的流不在第j个slave服务器上;若取值为1,则表示第i条待限速的流在第j个slave服务器上,其中i为大于或等于1且小于或等于N1的正整数,j为大于或等于1且小于或等于M的正整数。
本公开实施例中,控制节点可以逐个将相应的配置信息下发至各个slave服务器。下发信息给各个slave服务器时,下发更新后的版本号version number和数组<versionnumber,[]_i>给第i个slave服务器,其中,[]_i表示第i个slave服务器的数组,标明了数组里每个位置存放的流的顺序。例如,在slave端,每个slave服务器维护512个限速单元,则[]_i是一个512维度的数组,每个维度依次代表一个限速单元存放的是哪一条流。例如第i个slave服务器接收到的[]_i假设为[3,4,8,…],则说明第i个slave服务器的第一个限速单元存放的是第3条网络流,第二个限速单元存放的是第4条网络流,第三个限速单元存放的是第8条网络流,依次类推,若数组的某个位置为0,则说明该位置对应的限速单元没有分配网络流。这样,每个slave服务器根据接收到的配置信息可以知道其每一个限速单元维护的是哪一条待限速的流,以及在这个slave服务器上每一个限速单元需要维护的速率是多大。
每个slave服务器维护一个512长度的数组,用来表示其512个限速单元维护的512条流最新的令牌桶生成速率(rate),这里的rate是mater服务器下发的512个限速单元的最新的令牌生成速率,第i个slave服务器接收到<version number,[]_i>配置之后,更新自己的数组,并且更新版本号,返回一个响应(response)给控制节点。
本公开实施例中,控制节点在下发配置信息给master服务器时,可以下发当前所有待限速的流的配置信息。每条待限速的流的配置信息可以表示如下:<flowid,number,[]_limiterid,version number>,其中number表示为该流所分配的限速单元数量,数组[]_limiterid用来表示为该流所分配的slave服务器的标识符serverid和限速单元的标识符limiterid。
例如,若目标网络流f1的配置信息为:<f1,3,[1_22,3_14,5_16],v_3>就表示flowid为f1的流被分配了3个限速单元,这三个限速单元分别是第1个slave服务器的第22个限速单元、第3个slave服务器的第14个限速单元以及第5个slave服务器的第16个限速单元。v_3表示的就是当前版本号。这样,在master端,master服务器知道每个slave服务器的每个限速单元维护的是哪条待限速的流,以及这条流的总的限制速率是多大。
通过这样的过程,master和slave完成了同步,master知道了每个slave端的每个限速单元是服务的哪条流。
本公开实施例中,控制面想要实现的功能是:在master端存有每条待限速的流的全局的限制速率R,每个slave服务器中的每个限速单元维护各自的令牌桶,令牌的生成速率由master进行下发。master下发信息给每个slave时,可以发送一个512长度的数组,里面的每一个值代表着这个slave上每个限速单元需要更新的令牌生成速率。
本公开实施例中,slave端可以实现两个功能,一个是监视器功能,用来记录其中的各个限速单元到来的流量大小;一个是自身的令牌桶功能,用来对其中的各个限速单元维护的流进行限速。
slave端可以维护其中的各个限速单元的当前令牌生成速率last_rate、当前令牌生成速率的轮次Last_Round、当前tick的流入流量Total_Traff以及版本号Version_Number。slave端每隔一段时间(1tick),向master端上传一次demand。这里的demand是每个slave中的各个限速单元在该tick内的总流入流量。
例如,slave端维护如下表1:
表1
Last_Rate | Last_Round | Total_Traff | Version_Number |
master端需要知道哪个流在哪个slave服务器的哪个限速单元上,从而在分配令牌生成速率时,能够准确无误的进行分配。master端维护slave端上传的信息,因为slave端是每隔一个tick上传一次当前测得的所有限速单元上各自的流入流量信息,所以master接收到的信息是以slave为单位而不是以flow为单位的,master需要从slave上传的信息中进行进一步的整合分析,才可以每个round进行一次计算,并为每个slave服务器下发其中的每个限速单元的准确的令牌生成速率。
对于slave的维护,master端需要维护每一个slave的标识符Slave_Index、每一个slave的最新更新时间Last_Update(用来处理包乱序)、当前round内每个限速单元的总的traffic(流入流量)Last_Demand、当前令牌生成速率的轮次Last_Round和版本号Version_Number。master端每隔一段时间(1round)向slave下发一次令牌生成速率,下发时将轮次加一。由于一个tick时长远小于一个round时长,因此,即使slave服务器上传的有些tick的报文丢失了,master仍然可以在每一个round进行计算前得知该round内每个slave上的每个限速单元上的流入流量信息,slave服务器上的限速单元的流入流量信息不需考虑乱序。
本公开实施例中,版本号可以由master服务器决定。若Multi_Paxos协议运行过程没有遇到问题,则每个round更新一次版本号。若Multi_Paxos协议运行过程遇到问题,则顺延下一round再更新版本号。
计算后,master下发速率表(该速率表中包括每个slave服务器中的每个限速单元的下一round的下一令牌生成速率)给每个slave服务器,并通过Multi_Paxos与slave服务器同步下一个应当生效的版本号,以保证所有slave服务器在使用同样一个版本的速率表。包乱序不会影响Multi_Paxos的协议执行。
例如,master端维护如下表2:
表2
在一些实施例中,master还为每个slave维护一个timer,用于探测相应的slave是否下线,当超过预定时间(即timer time-out,具体取值可以根据实际情况进行设定,本公开对此不作限定)未收到数据包,则认为该slave宕机,并通知控制节点;当master每次收到来自某个slave发送的数据包后,立即重置该slave对应的timer。这里的timer应该要小于round。
下面结合图9-13的实例对本公开实施例提供的方法和系统进行举例说明,但本公开并不限定于此。
图9示意性示出了根据本公开的一实施例的VPC流量限速应用场景示意图。这里,VPC是一个公共云计算资源的动态配置池,使用加密协议、隧道协议和其他安全程序,将一部分公有云资源为某个用户隔离出来,给这个用户私有使用的资源的集合,在用户(例如企业)和云服务器提供商之间传输数据。
这里假设将上述提出的对流量进行分布式限速的方案,应用于VPC对之间的流量限速。当VPC对之间通信时,VPC对之间进行通信时的流量可能会非常大,超过了其所购买的带宽,因此需要对这部分流量进行速率的限制。这里的VPC可以是企业内部自己的,也可以是外部其他服务提供商的VPC。限速的功能是在NGW(Network Gateway,网关)集群实现的。本公开实施例对VPC对的流入流量不做限制,但是对流出的流量会做限速。
如图9所示,假设VPC1和VPC2之间现在进行通信,VPC1发送给VPC2的流量速率是50Gbps,那么流入NGW集群的流量为50Gbps,但是这里假设这两个VPC对之间购买的带宽只有20Gbps,经过NGW集群完成限速后,从NGW网关集群流出的流量变成了20Gbps,即最终实际流向VPC2的流量为20Gbps。
图10示意性示出了相关技术中采用的VPC流量限速单机版本的示意图。
如图10所示,相关技术中使用的是单机版本的限速方案,利用一个限速单元完成限速如图9所示的VPC对之间的限速。但是预期性能不能满足未来的业务需求,单机版本的限速方案只能达到最高限速20Gbps,但是分布式限速方案可以限制更高。
图11示意性示出了根据本公开的一实施例的VPC流量限速分布式实现示意图。本公开实施例中,从更高限速性能出发,通过分布式的方式,将进入网关集群的流量分摊到更多slave服务器上的更多限速单元进行限速,在保证高精度的前提下,获得更高的限速性能。
本公开实施例中,同属一个VRF的数据流量称之为一条网络流,例如如图11所示,VPC1向VPC2发送的所有报文同属同一条网络流,假设为当前待限速的目标网络流。这些报文可以属于不同的子流,例如一条网络流中可以包括多条TCP(Transmission ControlProtocol,传输控制协议)子流、多条UDP(User Datagram Protocol,用户数据报协议)子流,或者其他任何传输层及应用层协议的流量。属于同一条网络流的这些子流可以被随机的分配到不同的限速单元处理。属于同一条网络流的所有子流的总体速率被限制不大于该网络流被设定的阈值即其对应的限制速率。
图12示意性示出了根据本公开的一实施例的基于速率分配的双机热备份架构的分布式限速示意图。
如图12所示,本公开实施例中可以使用双机热备份的架构,使得系统具有一定的容灾能力。每一个slave服务器(这里假设网关集群中一共有m个从服务器:从服务器1、从服务器2、…、从服务器m)中的每一个限速单元均会本地维护一个令牌桶,并且每个令牌桶有其当前round的当前令牌生成速率(图12中仅以从服务器1的某一个限速单元的令牌桶为例,其对应的当前令牌生成速率为r1)。
这里假设主机1是上述实施例中的主节点,主机2是热备份节点。每个slave服务器每隔一个tick时间会向master上报自己的每个限速单元的流入流量,上报时,同时给主节点和热备份节点都发送。master端在收到slave端上传的信息后,会更新自己维护的slave信息。主节点和热备份节点之间通过心跳进行监测,当热备份节点发现主节点宕机后,会主动升级成为主节点,并执行令牌生成速率下发的功能。如果主节点没有宕机的话,主节点每隔一个round时间会向所有的slave下发各个限速单元的下一令牌生成速率(图12中仅以从服务器1的某一个限速单元的令牌桶为例,其对应的当前令牌生成速率为r1”,其中traffic1代表目标网络流在从服务器1上的该限速单元的当前tick的流入流量),若主节点宕机的话,热备份节点会承担这一步的功能。主节点在下发令牌生成速率的时候,和每个slave之间的交互可以采用Multi_Paxos协议进行同步。
图13示意性示出了根据本公开的一实施例的软件结构图。
本公开实施例中,slave端可以实现两个功能,一个是流量监控功能,一个是令牌桶功能。master端可以实现信息维护功能,即维护slave的信息和流限速的信息。master端还可以实现速率分配的功能,即根据维护的这些信息去计算应该给每个slave的每个限速单元分配多少的令牌生成速率。此外,master端和slave端还需要实现信息交互功能,slave端上传信息时每隔1tick上传一次,master端不需要进行确认。master端下发令牌生成速率时,如果一个round比较大,就需要有一个确认机制,以保证所有slave都使用的是相同round的令牌生成速率。这里可以采用Multi_Paxos协议进行一致性维护。
计算后,master下发速率表给每个slave,并通过Multi_Paxos与slave同步下一个应当生效的版本号,以保证所有slave在使用同样一个版本的速率表。这是因为,由于round时间较长,如果slave都在使用错误的限速值,会对整体准确率造成很大影响,因此这里使用分布式共识机制,保证整个网关集群的slave都使用的是同一个版本的速率表。
如图13所示,以网关集群中的任意一个从服务器为例进行举例说明。从服务器可以包括监测模块(sensor模块)、第一发送模块、第一接收模块和令牌桶模块(token_buk模块)。主机(这里指当前充当主节点的主机)可以包括第二接收模块、更新模块(update模块)、计算模块(calculator模块)和第二发送模块,其中第一发送模块和第二接收模块之间通过UDP/IP协议交互信息,第一接收模块和第二发送模块之间通过UDP/IP(Multi_Paxos)协议交互信息。
其中,从服务器的监测模块可以用于监控到来每个限速单元(这里假设一个从服务器包括512个限速单元)的流量。第一发送模块可以用于每隔1tick通过get_demand([512]_demand)从监测模块得到每个限速单元的在当前tick的流入流量[512]_demand,[512]_demand是一个512长度的数组,数组中每个值依次代表相应顺序的每个限速单元的当前tick的流入流量,打包后通过UDP/IP发送到master端。第一接收模块可以通过Multi_Paxos协议和master同步速率信息后,通过update_rate([512]_rate)将需要更新的下一round的每个限速单元的下一令牌生成速率[512]_rate传输给令牌桶模块,其中[512]_rate是一个512长度的数组,数组中每个值依次代表相应顺序的每个限速单元的下一令牌生成速率。令牌桶模块接收到新的rate信息后,会去更新自己下一round的下一令牌生成速率。
其中,主机的第二接收模块可以用于接收来自从服务器的数据,通过update_info([512]_demand,timestamp,version_number,round,slave_id)将包里的信息发送给更新模块。这里的timestamp是指此次收到的从服务器的各个限速单元的流入流量信息的时间戳。slave_id是该从服务器的标识符。
更新模块收到新的信息后,会根据得到的信息去更新自己维护的slave的状态信息(例如上述表2中的Last_Update、Last_Demand、Last_Round、Version_Number),更新模块也会为每个slave设置一个timer,当发现有slave超时时,会认为该slave宕机。每隔一个round,更新模块通过发送一个信号给计算模块,通知计算模块进行新一轮的令牌生成速率rate的计算。同时更新模块也会通过slave_down([M]),发送一个slave的宕机情况给计算模块,告知计算模块哪些slave发生宕机。M是slave数量。
计算模块在收到更新模块的信号后,会根据公式去计算每个slave上每个限速单元的rate。计算完成后通过send([512]_rate,slave_id,round_number,version_number)将下一轮各slave的各个限速单元的rate传递给第二发送模块。
对每个待限速的目标网络流而言,可以通过以下公式计算为其第h个限速单元所分配的下一令牌生成速率r_h:
r_h=R*Th/sum (1)
其中,上述公式中,R为该目标网络流的限制速率,Th为该第h个限速单元在当前round内的总流入流量(可以是当前round内各个tick上传的流入流量之和),sum是该目标网络流所分配的Q个限速单元在当前round内的总流入流量,Q为大于或等于1的正整数,h为大于或等于1且小于或等于Q的正整数,即sum=T1+T2+…+TQ。
第二发送模块将收到的信息打包后通过UDP/IP发送到slave端,并通过Multi_Paxos协议与各个slave进行同步。
本公开实施方式提供的限速方法和限速系统,基于网关集群的流量模式、业务模式、服务器性能、控制器性能、网络延迟和带宽性能等具体要求,提出了一种基于速率下发的高性能网关集群的分布式高精度限速方案,提升了限速性能,也具有一定的容灾能力和扩展弹性。
图14示意性示出了根据本公开的一实施例的限速装置的框图。所述装置可以应用于网关集群的主节点。
如图14所示,本公开实施方式提供的限速装置1400可以包括:待限速流信息获取模块1410、节点限速单元获得模块1420、限速流入流量获取模块1430、令牌生成速率获得模块1440以及令牌生成速率下发模块1450。
其中,待限速流信息获取模块1410可以配置为获取当前待限速的目标网络流的限制速率。节点限速单元获得模块1420可以配置为获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元。限速流入流量获取模块1430可以配置为获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量。令牌生成速率获得模块1440可以配置为根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率。令牌生成速率下发模块1450可以配置为将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,以便于各目标限速单元的令牌桶在所述下一第一时间段内采用所述下一令牌生成速率生成令牌,使得流出所述网关集群的目标网络流的流量小于所述限制速率。
在示例性实施例中,令牌生成速率下发模块1450可以包括:速率表下发单元,可以配置为将包括各目标限速单元的下一令牌生成速率的速率表分别下发至所述网关集群内的各从节点;版本请求接收单元,可以配置为接收各从节点响应于所接收到的速率表返回的版本请求;版本号消息发送单元,可以配置为响应于各从节点的版本请求,向各从节点发送包括所述速率表的版本号的消息,以便于各从节点根据所述消息更新其速率表的版本号。
在示例性实施例中,限速流入流量获取模块1430可以包括:流入流量信息定时接收单元,可以配置为在所述当前第一时间段内,每隔第二时间段接收各目标从节点上传的流入各目标限速单元的目标网络流的流入流量;总流入流量计算单元,可以配置为根据所述当前第一时间段内每隔第二时间段流入各目标限速单元的目标网络流的流入流量,获得所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量。
在示例性实施例中,所述第一时间段可以大于所述第二时间段,所述第二时间段可以大于所述网关集群中任意两个节点之间的时延。
在示例性实施例中,所述目标限速单元可以包括第一目标限速单元和第二目标限速单元。其中,令牌生成速率获得模块1440可以包括:目标网络流流入流量获得单元,可以配置为根据所述当前第一时间段内流入所述第一目标限速单元的目标网络流的总流入流量和流入所述第二目标限速单元的目标网络流的总流入流量,获得所述当前第一时间段内所述目标网络流的总流入流量;第一令牌生成速率获得单元,可以配置为根据所述当前第一时间段内流入所述第一目标限速单元的目标网络流的总流入流量、所述当前第一时间段内所述目标网络流的总流入流量和所述限制速率,获得所述第一目标限速单元的下一令牌生成速率;第二令牌生成速率获得单元,可以配置为根据所述当前第一时间段内流入所述第二目标限速单元的目标网络流的总流入流量、所述当前第一时间段内所述目标网络流的总流入流量和所述限制速率,获得所述第二目标限速单元的下一令牌生成速率。
在示例性实施例中,所述目标从节点可以包括第一目标从节点和第二目标从节点,所述第一目标限速单元可以位于所述第一目标从节点,所述第二目标限速单元可以位于所述第二目标从节点。
在示例性实施例中,令牌生成速率获得模块1440还可以包括:定时器设置单元,可以配置为若超过预定时间未接收到所述第一目标从节点发送的数据包,则根据所述当前第一时间段内流入所述第二目标限速单元的目标网络流的总流入流量,获得所述当前第一时间段内所述目标网络流的总流入流量;第三令牌生成速率获得单元,可以配置为根据所述当前第一时间段内流入所述第二目标限速单元的目标网络流的总流入流量、所述当前第一时间段内所述目标网络流的总流入流量和所述限制速率,获得所述第二目标限速单元的下一令牌生成速率。其中所述预定时间可以小于所述第一时间段。
在示例性实施例中,所述网关集群还可以包括热备份节点。其中,限速装置1400还可以包括:心跳监测模块,可以配置为所述主节点和所述热备份节点之间通过心跳进行监测;热备份模块,可以配置为当所述热备份节点监测到所述主节点宕机时,使所述热备份节点成为所述主节点。
本公开实施例提供的限速装置中的各个模块和单元的具体实现可以参照上述限速方法中的内容,在此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块和单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块和单元的特征和功能可以在一个模块和单元中具体化。反之,上文描述的一个模块和单元的特征和功能可以进一步划分为由多个模块和单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (13)
1.一种限速方法,其特征在于,应用于网关集群的主节点,所述方法包括:
获取当前待限速的目标网络流的限制速率;
获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元;
获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量;
根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率;
将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,以便于各目标限速单元的令牌桶在所述下一第一时间段内采用所述下一令牌生成速率生成令牌,使得流出所述网关集群的目标网络流的流量小于所述限制速率。
2.根据权利要求1所述的方法,其特征在于,将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,包括:
将包括各目标限速单元的下一令牌生成速率的速率表分别下发至所述网关集群内的各从节点;
接收各从节点响应于所接收到的速率表返回的版本请求;
响应于各从节点的版本请求,向各从节点发送包括所述速率表的版本号的消息,以便于各从节点根据所述消息更新其速率表的版本号。
3.根据权利要求1所述的方法,其特征在于,获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量,包括:
在所述当前第一时间段内,每隔第二时间段接收各目标从节点上传的流入各目标限速单元的目标网络流的流入流量;
根据所述当前第一时间段内每隔第二时间段流入各目标限速单元的目标网络流的流入流量,获得所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量。
4.根据权利要求3所述的方法,其特征在于,所述第一时间段大于所述第二时间段,所述第二时间段大于所述网关集群中任意两个节点之间的时延。
5.根据权利要求1所述的方法,其特征在于,所述目标限速单元包括第一目标限速单元和第二目标限速单元;其中,根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率,包括:
根据所述当前第一时间段内流入所述第一目标限速单元的目标网络流的总流入流量和流入所述第二目标限速单元的目标网络流的总流入流量,获得所述当前第一时间段内所述目标网络流的总流入流量;
根据所述当前第一时间段内流入所述第一目标限速单元的目标网络流的总流入流量、所述当前第一时间段内所述目标网络流的总流入流量和所述限制速率,获得所述第一目标限速单元的下一令牌生成速率;
根据所述当前第一时间段内流入所述第二目标限速单元的目标网络流的总流入流量、所述当前第一时间段内所述目标网络流的总流入流量和所述限制速率,获得所述第二目标限速单元的下一令牌生成速率。
6.根据权利要求5所述的方法,其特征在于,所述目标从节点包括第一目标从节点和第二目标从节点,所述第一目标限速单元位于所述第一目标从节点,所述第二目标限速单元位于所述第二目标从节点。
7.根据权利要求6所述的方法,其特征在于,根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率,还包括:
若超过预定时间未接收到所述第一目标从节点发送的数据包,则根据所述当前第一时间段内流入所述第二目标限速单元的目标网络流的总流入流量,获得所述当前第一时间段内所述目标网络流的总流入流量;
根据所述当前第一时间段内流入所述第二目标限速单元的目标网络流的总流入流量、所述当前第一时间段内所述目标网络流的总流入流量和所述限制速率,获得所述第二目标限速单元的下一令牌生成速率;
其中所述预定时间小于所述第一时间段。
8.根据权利要求1所述的方法,其特征在于,所述网关集群还包括热备份节点;其中,所述方法还包括:
所述主节点和所述热备份节点之间通过心跳进行监测;
当所述热备份节点监测到所述主节点宕机时,使所述热备份节点成为所述主节点。
9.一种限速装置,其特征在于,应用于网关集群的主节点,所述装置包括:
待限速流信息获取模块,配置为获取当前待限速的目标网络流的限制速率;
节点限速单元获得模块,配置为获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元;
限速流入流量获取模块,配置为获取当前第一时间段内流入各目标限速单元的目标网络流的总流入流量;
令牌生成速率获得模块,配置为根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率;
令牌生成速率下发模块,配置为将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点,以便于各目标限速单元的令牌桶在所述下一第一时间段内采用所述下一令牌生成速率生成令牌,使得流出所述网关集群的目标网络流的流量小于所述限制速率。
10.一种限速系统,其特征在于,所述系统包括主节点和从节点;其中,
所述主节点配置为获取当前待限速的目标网络流的限制速率,并获得用于对所述目标网络流进行限速的目标从节点及其目标限速单元,所述从节点包括所述目标从节点;
所述目标从节点配置为在当前第一时间段内,每隔第二时间段向所述主节点上传流入各目标限速单元的目标网络流的流入流量;
所述主节点还配置为根据接收到的所述当前第一时间段内每隔第二时间段流入各目标限速单元的目标网络流的流入流量,获得所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量,并根据所述当前第一时间段内流入各目标限速单元的目标网络流的总流入流量和所述限制速率,获得下一第一时间段内各目标限速单元的令牌桶的下一令牌生成速率,将所述下一第一时间段内各目标限速单元的下一令牌生成速率下发至各目标从节点;
所述目标从节点还配置为根据接收到的所述下一第一时间段内各目标限速单元的下一令牌生成速率来生成各目标限速单元的令牌桶中的令牌,使得流出所述系统的目标网络流的流量小于所述限制速率。
11.根据权利要求10所述的系统,其特征在于,所述系统还包括:
控制节点,配置为获取所述目标网络流的流信息,并根据所述流信息和各从节点的负载信息确定对所述目标网络流进行限速的目标从节点及其目标限速单元。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至8中任一项所述的限速方法。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的限速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988539.5A CN110753005A (zh) | 2019-10-17 | 2019-10-17 | 限速方法、装置及系统、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988539.5A CN110753005A (zh) | 2019-10-17 | 2019-10-17 | 限速方法、装置及系统、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110753005A true CN110753005A (zh) | 2020-02-04 |
Family
ID=69278677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910988539.5A Pending CN110753005A (zh) | 2019-10-17 | 2019-10-17 | 限速方法、装置及系统、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110753005A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111431816A (zh) * | 2020-06-15 | 2020-07-17 | 广东睿江云计算股份有限公司 | 一种分布式流量限速方法及系统 |
CN111585892A (zh) * | 2020-04-29 | 2020-08-25 | 平安科技(深圳)有限公司 | 数据中心流量管控方法和系统 |
CN112039796A (zh) * | 2020-08-28 | 2020-12-04 | 北京字节跳动网络技术有限公司 | 数据包传输方法和装置、存储介质和电子设备 |
CN112286693A (zh) * | 2020-11-24 | 2021-01-29 | 上海浦东发展银行股份有限公司 | 一种高并发场景下抢购活动的精细化限流处理方法、装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691165B1 (en) * | 1998-11-10 | 2004-02-10 | Rainfinity, Inc. | Distributed server cluster for controlling network traffic |
CN103561095A (zh) * | 2013-11-04 | 2014-02-05 | 金蝶软件(中国)有限公司 | 一种数据同步方法、节点及存储服务集群 |
CN103929366A (zh) * | 2014-04-02 | 2014-07-16 | 华为技术有限公司 | 流量控制方法、装置及设备 |
CN105763519A (zh) * | 2014-12-18 | 2016-07-13 | 华为技术有限公司 | 一种一致性控制方法,装置及系统 |
CN106302700A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 基于paxos算法的分布式系统一致性更新方法及系统 |
US9654483B1 (en) * | 2014-12-23 | 2017-05-16 | Amazon Technologies, Inc. | Network communication rate limiter |
CN107347198A (zh) * | 2016-05-05 | 2017-11-14 | 北京金山云网络技术有限公司 | 一种限速方法、限速控制节点和限速设备 |
CN109587072A (zh) * | 2019-01-04 | 2019-04-05 | 中企动力科技股份有限公司 | 分布式系统全局限速系统及方法 |
CN109995669A (zh) * | 2019-04-09 | 2019-07-09 | 深圳前海微众银行股份有限公司 | 分布式限流方法、装置、设备及可读存储介质 |
-
2019
- 2019-10-17 CN CN201910988539.5A patent/CN110753005A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691165B1 (en) * | 1998-11-10 | 2004-02-10 | Rainfinity, Inc. | Distributed server cluster for controlling network traffic |
CN103561095A (zh) * | 2013-11-04 | 2014-02-05 | 金蝶软件(中国)有限公司 | 一种数据同步方法、节点及存储服务集群 |
CN103929366A (zh) * | 2014-04-02 | 2014-07-16 | 华为技术有限公司 | 流量控制方法、装置及设备 |
CN105763519A (zh) * | 2014-12-18 | 2016-07-13 | 华为技术有限公司 | 一种一致性控制方法,装置及系统 |
US9654483B1 (en) * | 2014-12-23 | 2017-05-16 | Amazon Technologies, Inc. | Network communication rate limiter |
CN107347198A (zh) * | 2016-05-05 | 2017-11-14 | 北京金山云网络技术有限公司 | 一种限速方法、限速控制节点和限速设备 |
CN106302700A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 基于paxos算法的分布式系统一致性更新方法及系统 |
CN109587072A (zh) * | 2019-01-04 | 2019-04-05 | 中企动力科技股份有限公司 | 分布式系统全局限速系统及方法 |
CN109995669A (zh) * | 2019-04-09 | 2019-07-09 | 深圳前海微众银行股份有限公司 | 分布式限流方法、装置、设备及可读存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585892A (zh) * | 2020-04-29 | 2020-08-25 | 平安科技(深圳)有限公司 | 数据中心流量管控方法和系统 |
CN111431816A (zh) * | 2020-06-15 | 2020-07-17 | 广东睿江云计算股份有限公司 | 一种分布式流量限速方法及系统 |
CN111431816B (zh) * | 2020-06-15 | 2020-11-10 | 广东睿江云计算股份有限公司 | 一种分布式流量限速方法及系统 |
WO2021253725A1 (zh) * | 2020-06-15 | 2021-12-23 | 广东睿江云计算股份有限公司 | 一种分布式流量限速方法及系统 |
CN112039796A (zh) * | 2020-08-28 | 2020-12-04 | 北京字节跳动网络技术有限公司 | 数据包传输方法和装置、存储介质和电子设备 |
CN112039796B (zh) * | 2020-08-28 | 2023-04-18 | 北京字节跳动网络技术有限公司 | 数据包传输方法和装置、存储介质和电子设备 |
CN112286693A (zh) * | 2020-11-24 | 2021-01-29 | 上海浦东发展银行股份有限公司 | 一种高并发场景下抢购活动的精细化限流处理方法、装置 |
CN112286693B (zh) * | 2020-11-24 | 2022-03-29 | 上海浦东发展银行股份有限公司 | 一种高并发场景下抢购活动的精细化限流处理方法、装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110753005A (zh) | 限速方法、装置及系统、电子设备和计算机可读存储介质 | |
EP1700228B1 (en) | Systems and methods for synchronizing data between communication devices in a networked environment | |
US6748447B1 (en) | Method and apparatus for scalable distribution of information in a distributed network | |
US8639113B2 (en) | Network protection switching | |
EP3633957B1 (en) | Data storage method, storage server, storage medium and system | |
US20130166766A1 (en) | Streaming Service for Correlated Multi-Streaming | |
CN110855737B (zh) | 一种一致性级别可控的自适应数据同步方法和系统 | |
US11271842B2 (en) | Enhancing transmission control protocol (TCP) performance and scalability on multicore processor architectures | |
Zhu et al. | MCTCP: Congestion-aware and robust multicast TCP in software-defined networks | |
He et al. | Quanta: a toolkit for high performance data delivery over photonic networks | |
Zhu et al. | A congestion-aware and robust multicast protocol in SDN-based data center networks | |
EP1744520B1 (en) | Method and apparatus for selecting a group leader | |
CN112866390B (zh) | 一种数据传输方法、装置、终端设备和存储介质 | |
US11595471B1 (en) | Method and system for electing a master in a cloud based distributed system using a serverless framework | |
Berket et al. | A practical approach to the InterGroup protocols | |
CN111930331B (zh) | 信息显示方法、装置、电子设备和计算机可读介质 | |
CN110928693B (zh) | 一种计算设备及资源分配方法 | |
JP7295752B2 (ja) | 企業ネットワーク内の動的コンテンツ配信 | |
KR20180000502A (ko) | 클라우드 기반의 데이터 처리 장치 및 사용자 단말 | |
KR20210041392A (ko) | Ipfs 분산 스토리지 환경에서의 우주 기상 관측 데이터 모니터링 시스템 및 방법 | |
CN116366141B (zh) | 向信宿过程传输遥测应用数据的方法、装置及存储介质 | |
CN114610765B (zh) | 流计算方法、装置、设备及存储介质 | |
US11816095B2 (en) | Metrics and events infrastructure | |
US11526499B2 (en) | Adaptively updating databases of publish and subscribe systems using optimistic updates | |
Zhang et al. | Big data encrypting transmission framework for a multi-AGV system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40018295 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200204 |
|
RJ01 | Rejection of invention patent application after publication |