CN109617831A - 用于分布式系统的流量管理方法和装置以及计算设备 - Google Patents
用于分布式系统的流量管理方法和装置以及计算设备 Download PDFInfo
- Publication number
- CN109617831A CN109617831A CN201910125351.8A CN201910125351A CN109617831A CN 109617831 A CN109617831 A CN 109617831A CN 201910125351 A CN201910125351 A CN 201910125351A CN 109617831 A CN109617831 A CN 109617831A
- Authority
- CN
- China
- Prior art keywords
- equipment
- application service
- current limliting
- running
- target
- 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
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/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Traffic Control Systems (AREA)
Abstract
本公开是关于一种用于分布式系统的流量管理方法,由应用服务的运行设备执行,所述方法包括:向所述应用服务的管理设备发起请求;基于所述管理设备对所述请求的反馈,获取所述应用服务在所述运行设备上的分解限流目标,所述分解限流目标基于所述应用服务在所有运行设备上的运行相关信息得到;以及根据所述分解限流目标对所述应用服务进行流量控制。根据本公开的实施例,基于应用服务的总体运行情况获取各设备上的分解限流目标,能够实现更为合理的流量管控。
Description
技术领域
本公开涉及计算机网络技术领域,尤其涉及一种用于分布式系统的流量管理方法和装置以及计算设备。
背景技术
在互联网时代,越来越多的公司都选择分布式系统(也称微服务架构)作为运营平台。这样的系统通常由成百上千个应用组成,应用之间可以分别独立进行开发,但运行时又会互相调用以完成特定的功能。在应用的相互调用过程中,被调用应用的处理速度较慢时,会导致主动调用应用的处理出错。这种情况下,可以对被调用应用进行优化处理,或者对主动调用应用进行限流(也称限速)处理。然而,在被调用应用属于外部系统等情况下,限流机制适用性更强。
目前常用的限流机制通常包括以下两种方式。一种方式是通过控制应用所部署的服务器数量或者控制每个服务器上所启动的应用线程数,来降低应用的主动调用速度;另一种方式则是通过在分布式系统中运行全局的限流算法(例如令牌桶算法),实现对多个服务器上所部署应用的精确限流。
然而,上述限流机制常用的第一种方式实施较为繁琐,往往需要用户手动操作使部分服务器下线或部分线程停止,对流量的管理较为粗略;而实现第二种方式的限流算法需要运行在一台全局的服务器上,从而存在单点问题,也即,一旦这台限流服务器出现故障,会造成整个分布式系统中流量管理的失效。
发明内容
本公开的目的是提供一种用于分布式系统的流量管理方法、装置、存储介质以及计算设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供一种用于分布式系统的流量管理方法,由应用服务的运行设备执行,所述方法包括:向所述应用服务的管理设备发起请求;基于所述管理设备对所述请求的反馈,获取所述应用服务在所述运行设备上的分解限流目标,所述分解限流目标基于所述应用服务在所有运行设备上的运行相关信息得到;以及根据所述分解限流目标对所述应用服务进行流量控制。
根据本公开实施例的第二方面,提供一种用于分布式系统的流量管理方法,由应用服务的管理设备执行,所述方法包括:获取所述应用服务在所有运行设备上的运行相关信息;以及响应于所述运行设备的请求,向所述运行设备提供反馈,使所述运行设备基于所述反馈获取分解限流目标、并根据所述分解限流目标对所述应用服务进行流量控制,所述分解限流目标基于所述运行相关信息得到。
根据本公开实施例的第三方面,提供一种用于分布式系统的流量管理装置,由应用服务的运行设备实施,所述装置包括:请求模块,设置为向所述应用服务的管理设备发起请求;获取模块,设置为基于所述管理设备对所述请求的反馈,获取所述应用服务在所述运行设备上的分解限流目标,所述分解限流目标基于所述应用服务在所有运行设备上的运行相关信息得到;以及限流模块,设置为根据所述分解限流目标对所述应用服务进行流量控制。
根据本公开实施例的第四方面,提供一种用于分布式系统的流量管理装置,由应用服务的管理设备实施,所述装置包括:监听模块,设置为获取所述应用服务在所有运行设备上的运行相关信息;以及反馈模块,设置为响应于所述运行设备的请求,向所述运行设备提供反馈,使所述运行设备基于所述反馈获取分解限流目标、并根据所述分解限流目标对所述应用服务进行流量控制,所述分解限流目标基于所述运行相关信息得到。
根据本公开实施例的第五方面,提供一种存储有计算机程序的存储介质,所述计算机程序在由计算设备的处理器运行时,使所述计算设备执行本公开任一实施例所述的流量管理方法。
根据本公开实施例的第六方面,提供一种计算设备,包括:处理器;存储器,存储有可由所述处理器执行的指令;其中所述处理器被配置为执行本公开任一实施例所述的流量管理方法。
根据本公开的实施例,基于应用服务的总体运行情况获取各设备上的分解限流目标,能够实现更为合理的流量管控。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1示意性示出相关技术中常规限流方法的应用场景图。
图2A示意性示出根据本公开一实施例用于分布式系统的流量管理方法流程图。
图2B示意性示出根据本公开另一实施例用于分布式系统的流量管理方法流程图。
图3示意性示出根据本公开一实施例流量管理方法的应用场景图。
图4示意性示出根据本公开再一实施例用于分布式系统的流量管理方法流程图。
图5示意性示出根据本公开又一实施例用于分布式系统的流量管理方法流程图。
图6A示意性示出根据本公开一实施例用于分布式系统的流量管理装置示意框图。
图6B示意性示出根据本公开另一实施例用于分布式系统的流量管理装置示意框图。
图7示意性示出本公开一实施例中一种电子设备的方框图。
图8示意性示出本公开一实施例中一种计算机可读存储介质的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
在详细介绍本发明的实施方式之前,首先结合图1对相关技术中的常规限流方法进行简单介绍。
图1为相关技术中常规限流方法的应用场景图。如图1所示,作为主动调用应用的A应用和作为被调用应用的B应用都分布运行在多个计算设备上。分布式系统中还部署有全局唯一的限流机制,图1中运行在中心设备C上。这里的限流机制例如可包括令牌桶算法等常规的限流算法。
以令牌桶算法为例,中心设备C以一定的速率往令牌桶中放令牌,运行A应用的计算设备a1-an向计算设备C请求令牌,只有拿到令牌的计算设备才能通过A应用发起对B应用的调用。如此一来,通过控制发放令牌的速率,便可实现对A应用的限流处理。
然而,图1所示的限流机制存在单点问题。具体而言,这里的限流机制只能运行在一台全局的服务器(例如中心设备C)上,一旦该服务器出现故障,便可能导致整个分布式系统的限流机制失效。
针对上述相关技术的问题,根据本发明的实施方式,提出了一种用于分布式系统的流量管理方法和装置以及介质和计算设备。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图2A为根据本公开一实施例用于分布式系统的流量管理方法流程图,如图所示,本实施例的方法包括以下步骤201-203。在一个实施例中,本实施例的方法可由但不限于由任意应用服务的运行设备(例如服务器)来执行。
在步骤201中,向应用服务的管理设备发起请求。
在步骤202中,基于管理设备对请求的反馈,获取应用服务在运行设备上的分解限流目标。
这里,步骤202中所述的分解限流目标是基于应用服务在所有运行设备上的运行相关信息得到。
与相关技术中由全局唯一的限流服务器按固定的限流目标对应用服务进行限流处理不同,本发明的实施例中基于应用服务在所有运行设备上的运行相关信息获取限流目标,可以更及时、全面的反应应用服务的运行情况,从而便于及时或者实时对限流目标进行调整。
在一个实施例中,这里的运行相关信息包括但不限于以下任一信息及其任意组合:运行应用服务的在线设备数量、各个在线设备的负载配置、以及应用服务的总限流目标。
这里的在线设备数量会根据运行应用服务的设备在线、离线情况实时变化;而总限流目标例如可由用户手动设定或根据经验值自动设定。
在一个实施例中,可在分布式系统中设置应用服务的管理设备(例如服务器),由管理设备从应用服务的所有运行设备收集上述运行相关信息,例如在线设备数量和负载配置,并基于用户操作或自动设定获取总限流目标。
另外,为了解决单点问题,可在分布式系统中设置互为备份的多个管理设备。多个管理设备之间的信息按周期或者实时进行同步,一旦主设备发生故障,可将辅设备切换为主设备,并由新的主设备收集上述运行相关信息,并提供给应用服务的运行设备。
在步骤201的一个实施例中,可以是运行设备在应用服务启动的初始化过程中,向上述管理设备发起请求以获取运行相关信息。
在步骤201的一个实施例中,还可以是运行设备在应用服务的运行过程中,在接收到管理设备关于运行相关信息发生变化的通知时,重新从上述管理设备获取变化后的运行相关信息。这里的运行设备例如可以按周期主动向管理设备发起请求,询问运行相关信息的变化情况,从而触发管理设备的上述通知;也可以由管理设备向包括当前运行设备在内的所有运行设备广播运行相关信息的变化情况。
进一步,与相关技术中由全局唯一的限流服务器按固定的限流目标对应用服务进行限流处理不同,上述步骤202的实施例中由应用服务的运行设备单独获取应用服务在当前设备上的分解限流目标,可以实现更合理、灵活的流量控制。
在步骤202的一个实施例中,可以是运行设备在(例如从上述管理设备)获取到应用服务的运行相关信息后,通过计算得到当前运行设备上的分解限流目标。
例如,运行设备在应用服务启动的初始化过程中,从上述管理设备获取运行相关信息,进而通过计算得到当前运行设备上的分解限流目标。
又例如,运行设备在应用服务的运行过程中,在接收到管理设备关于运行相关信息发生变化的通知时,重新从上述管理设备获取变化后的运行相关信息,进而通过计算得到当前设备上的分解限流目标。
在步骤202的另一个实施例中,也可以是运行设备从管理设备直接获取分解限流目标。这种情况下,管理设备除了负责收集运行相关信息,还可配置为响应于各运行设备的请求计算出相应的分解限流目标,并分别提供给各运行设备。
例如,运行设备在应用服务启动的初始化过程中,向上述管理设备请求并获取相应的分解限流目标。
又例如,运行设备在应用服务的运行过程中,在接收到管理设备关于运行相关信息发生变化的通知时,重新从上述中心设备获取新的分解限流目标。
接续参照图1所示,在步骤203中,根据分解限流目标对应用服务进行流量控制。
与相关技术中由全局唯一的限流服务器按固定的限流目标对应用服务进行限流处理不同,本发明的实施例中由运行应用服务的各设备分别按照分解限流目标进行流量控制,可以实现更鲁棒、灵活的流量控制,避免单点故障。
在一个实施例中,步骤203可使用包括但不限于令牌桶算法的限流方式,根据步骤202获取的分解限流目标对应用服务进行流量控制。
相应的,在一个实施例中,运行设备可分别设置有限流模块和调用模块。
例如,运行设备在应用服务启动的初始化过程中,从上述管理设备获取运行相关信息,通过计算得到当前运行设备上的分解限流目标后,进而由限流模块计算得到相应的令牌发放速率。调用模块通过向限流模块请求令牌,只有拿到令牌才能发起对外部应用的调用。如此一来,通过控制发放令牌的速率,便可实现运行设备上应用服务的分解限流目标。
又例如,运行设备在应用服务的运行过程中,在接收到管理设备关于运行相关信息发生变化的通知时,重新从上述管理设备获取变化后的运行相关信息,通过计算得到当前运行设备上的分解限流目标后,进而由限流模块计算得到相应的令牌发放速率。如此一来,通过控制发放令牌的速率,便可控制调用模块通过应用服务调用外部应用的流量,实现运行设备上应用服务的分解限流目标。
再例如,运行设备在应用服务启动的初始化过程中,向上述管理设备请求并获取相应的分解限流目标,进而由限流模块计算得到相应的令牌发放速率。或者,运行设备在应用服务的运行过程中,在接收到管理设备关于运行相关信息发生变化的通知时,重新从上述管理设备获取新的分解限流目标,进而由限流模块计算得到相应的令牌发放速率。通过控制发放令牌的速率,便可控制调用模块通过应用服务调用外部应用的流量,实现运行设备上应用服务的分解限流目标。
根据本公开的实施例,基于应用服务的总体运行情况获取各设备上的分解限流目标,能够实现更为合理的流量管控。
图2B为根据本公开另一实施例用于分布式系统的流量管理方法流程图,如图所示,本实施例的方法包括以下步骤211-212。在一个实施例中,本实施例的方法可由但不限于由任意应用服务的管理设备(例如服务器)来执行。
在步骤211中,获取应用服务在所有运行设备上的运行相关信息。
在步骤212中,响应于运行设备的请求,向运行设备提供反馈,使运行设备基于反馈获取分解限流目标、并根据分解限流目标对应用服务进行流量控制。
这里,步骤212中所述的分解限流目标基于应用服务在所有运行设备上的运行相关信息得到。
与相关技术中由全局唯一的限流服务器按固定的限流目标对应用服务进行限流处理不同,本发明的实施例中基于应用服务在所有运行设备上的运行相关信息生成限流目标,可以更及时、全面的反应应用服务的运行情况,从而便于及时或者实时对限流目标进行调整。
在一个实施例中,这里的运行相关信息包括但不限于以下任一信息及其任意组合:运行应用服务的在线设备数量、各个在线设备的负载配置、以及应用服务的总限流目标。
这里的在线设备数量会根据运行应用服务的设备在线、离线情况实时变化;而总限流目标例如可由用户手动设定或根据经验值自动设定。
在一个实施例中,可在分布式系统中设置应用服务的管理设备(例如服务器),由管理设备从应用服务的所有运行设备收集上述运行相关信息,例如在线设备数量和负载配置,并基于用户操作或自动设定获取总限流目标。
另外,为了解决单点问题,可在分布式系统中设置互为备份的多个管理设备。多个管理设备之间的信息按周期或者实时进行同步,一旦主设备发生故障,可将辅设备切换为主设备,并由新的主设备收集上述运行相关信息,并提供给应用服务的运行设备。
在一个实施例中,上述方法还可包括运行相关信息的监听步骤。由管理设备监听运行相关信息的变化,并在监听到变化时通知运行设备发起上述请求,或者在监听到变化时直接向运行设备提供上述反馈。
步骤212中反馈的内容可以包括运行相关信息,也可以包括分解限流目标。
例如,在步骤212中,由管理设备响应于运行设备的请求,反馈最新的运行相关信息。从而使各运行设备获取到运行相关信息后,能够通过计算分别得到各自设备上的分解限流目标。
又例如,在步骤212中,由管理设备响应于运行设备的请求,根据最新的运行相关信息计算得到与该运行设备对应的分解限流目标并向其反馈。换言之,在这种情况下,管理设备除了负责收集运行相关信息,还承担分解限流目标的计算功能。
与相关技术中由全局唯一的限流服务器按固定的限流目标对应用服务进行限流处理不同,本发明的实施例中由运行应用服务的各设备分别按照分解限流目标进行流量控制,可以实现更鲁棒、灵活的流量控制,避免单点故障。
综上所述,根据本公开的实施例,基于应用服务的总体运行情况获取各设备上的分解限流目标,能够实现更为合理的流量管控。
图3为根据本公开一实施例流量管理方法的应用场景图。如图3所示,作为主动调用应用的A应用和作为被调用应用的B应用都分布运行在多个计算设备上。
分布式系统中还部署有管理设备C,用于从A应用的所有运行设备a1-an收集运行相关信息,例如在线设备数量和负载配置,并基于用户操作或自动设定获取总限流目标。
A应用的每个运行设备上还包括限流模块和调用模块;其中调用模块用于向管理设备C反馈A应用在当前设备上的运行信息,并从管理设备C收集A应用在所有在线设备上的运行相关信息;限流模块则配置为基于调用模块获取的运行相关信息计算得到相应的分解限流目标,并按照分解限流目标控制当前设备上A应用的调用流量。
参照以上图3,下面结合图4和图5,分别按照A应用的启动过程和运行过程对本发明实施例的流量管理方法进行详细阐述。
图4为根据本公开另一实施例用于分布式系统的流量管理方法流程图。如图4所示,该实施例的流量管理方法包括以下步骤401-406。
在步骤401中,A应用在启动过程中,向调用模块发送初始化请求。
在步骤402中,调用模块收到初始化请求后,向管理设备发送请求,请求反馈运行相关信息。
这里的运行相关信息包括但不限于以下任一信息及其任意组合:运行应用服务的在线设备数量、各个在线设备的负载配置、以及应用服务的总限流目标。
在步骤403中,管理设备到请求后,将收集到的A应用运行相关信息发送给请求方(运行设备的调用模块)。
在步骤404中,调用模块收到反馈后,将获取到的运行相关信息发送给限流模块。
在步骤405(图中未示出)中,限流模块根据运行相关信息计算出运行设备上的分解限流目标,并以该分解限流目标为运行设备进行流量管理。
在一个实施例中,限流模块可使用包括但不限于令牌桶算法的限流方式,根据计算出的分解限流目标对应用服务进行流量控制。
在步骤406中,A应用使用限流模块提供的流量管理功能。
以令牌桶算法的限流方式为例,限流模块通过计算得到运行设备上的分解限流目标后,进而计算得到相应的令牌发放速率。调用模块通过向限流模块请求令牌,只有拿到令牌才能发起对外部应用的调用。如此一来,通过控制发放令牌的速率,便可实现运行设备上应用服务的分解限流目标。
图5为根据本公开另一实施例用于分布式系统的流量管理方法流程图。如图5所示,该实施例的流量管理方法包括以下步骤501-506。
在步骤501中,管理设备在检测到A应用的运行相关信息发生变化时,向各运行设备发出变更通知。
运行相关信息的变化可以包括多种情况。例如,用户在管理设备上修改了A应用的总限流目标时,可触发运行相关信息的变化。又例如,运行应用A的在线设备数量发生变化,或者部分在线设备的负载配置发生变更时,也会触发运行相关信息的变化。
在步骤502中,运行设备的调用模块收到变更通知,向管理设备发送请求信息,请求反馈变更后的运行相关信息。
在步骤503中,管理设备到请求后,将收集到的A应用运行相关信息发送给请求方。
在步骤504中,调用模块收到反馈后,将获取到的运行相关信息发送给限流模块。
在步骤505(图中未示出)中,限流模块根据运行相关信息计算出运行设备上的分解限流目标,并以该分解限流目标为运行设备进行流量管理。
在步骤506中,A应用使用限流模块提供的流量管理功能。
步骤503-506与上述步骤403-406对应,此处不再赘述。通过上述流程可见,基于管理设备发送变更通知和运行设备发送反馈请求的方式,可实现大部分流程在应用启动和运行过程中的复用,减少系统的复杂度。
另一方面,图4和图5所示的流程并不仅限于以上所述,本领域技术人员在具体实现时可根据需要进行调整。例如,由管理设备直接向运行设备推送最新的运行相关信息;或者,省略管理设备的变更通知,由运行设备按周期向管理设备请求反馈最新的运行相关信息。
另外,这里无论是运行设备和管理设备之间,还是运行设备上调用模块和限流模块之间,都仅仅是功能上的划分,而并不意味着在实体装置上对本发明实施例保护范围的限制,本领域技术人员在具体实现时可根据需要对各设备和模块的分工进行调整。例如,管理设备的功能可视需要由一个或多个运行设备同时承担,而并不必然需要物理上的隔离。
根据本公开的实施例,基于应用服务的总体运行情况获取各设备上的分解限流目标,能够实现更为合理的流量管控。
本示例实施方式中还提供了一种用于分布式系统的流量管理装置。
图6A为根据本公开一实施例用于分布式系统的流量管理装置示意框图。如图所示,本实施例的装置包括但不限于:请求模块61、获取模块62和限流模块63。
请求模块61设置为向所述应用服务的管理设备发起请求。
获取模块62设置为基于所述管理设备对所述请求的反馈,获取所述应用服务在所述运行设备上的分解限流目标,所述分解限流目标基于所述应用服务在所有运行设备上的运行相关信息得到。
限流模块63设置为根据所述分解限流目标对所述应用服务进行流量控制。
根据本公开的实施例,基于应用服务的总体运行情况获取各设备上的分解限流目标,能够实现更为合理的流量管控。
在一个实施例中,请求模块61可设置为请求所述管理设备反馈所述运行相关信息;相应的,获取模块62设置为基于所述运行相关信息通过计算得到所述分解限流目标。
在另一个实施例中,请求模块61还可设置为请求所述管理设备反馈所述分解限流目标;相应的,获取模块62设置为从所述管理设备直接获取所述分解限流目标。
在一个实施例中,请求模块61设置为在所述应用服务的初始化过程中或者在接收到所述管理设备的通知时,执行所述的向所述应用服务的管理设备发起请求。
在一个实施例中,限流模块63设置为基于令牌桶限流方式根据所述分解限流目标对所述应用服务进行流量控制。
在一个实施例中,所述的运行相关信息包括以下任意项信息:运行所述应用服务的在线设备数量、所述在线设备的负载配置、以及所述应用服务的总限流目标。
图6B为根据本公开另一实施例用于分布式系统的流量管理装置示意框图。如图所示,本实施例的装置包括但不限于:监听模块66和反馈模块67。
监听模块66设置为获取所述应用服务在所有运行设备上的运行相关信息。
反馈模块67设置为响应于所述运行设备的请求,向所述运行设备提供反馈,使所述运行设备基于所述反馈获取分解限流目标、并根据所述分解限流目标对所述应用服务进行流量控制,所述分解限流目标基于所述运行相关信息得到。
在一个实施例中,反馈模块67可设置为向所述运行设备反馈所述运行相关信息,使所述运行设备基于所述运行相关信息通过计算得到所述分解限流目标。
在另一个实施例中,反馈模块67还可设置为直接向所述运行设备反馈所述分解限流目标。
在一个实施例中,监听模块66还可设置为监听所述运行相关信息的变化,并在监听到所述变化时通知所述运行设备发起所述请求,或者在监听到所述变化时向所述运行设备提供所述反馈。
根据上述实施例分布式系统的流量管理装置,基于应用服务的总体运行情况获取各设备上的分解限流目标,能够实现更为合理的流量管控。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本发明的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图1中所示的步骤201:获取应用服务在所有设备上的运行相关信息;步骤202:基于运行相关信息获取应用服务在当前设备上的分解限流目标;步骤203:根据分解限流目标对应用服务进行流量控制。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图8所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和构思由权利要求指出。
Claims (13)
1.一种用于分布式系统的流量管理方法,由应用服务的运行设备执行,所述方法包括:
向所述应用服务的管理设备发起请求;
基于所述管理设备对所述请求的反馈,获取所述应用服务在所述运行设备上的分解限流目标,所述分解限流目标基于所述应用服务在所有运行设备上的运行相关信息得到;以及
根据所述分解限流目标对所述应用服务进行流量控制。
2.如权利要求1所述的方法,其中,
所述的向所述应用服务的管理设备发起请求,包括:请求所述管理设备反馈所述运行相关信息;
所述的获取所述应用服务在所述运行设备上的分解限流目标,包括:基于所述运行相关信息通过计算得到所述分解限流目标。
3.如权利要求1所述的方法,其中,所述的向所述应用服务的管理设备发起请求,包括:
请求所述管理设备反馈所述分解限流目标。
4.如权利要求1所述的方法,其中,在进行所述应用服务的初始化或者接收到所述管理设备的通知时,执行所述的向所述应用服务的管理设备发起请求。
5.如权利要求1-4任一项所述的方法,其中,所述的根据所述分解限流目标对所述应用服务进行流量控制,包括:
基于令牌桶限流方式根据所述分解限流目标对所述应用服务进行流量控制。
6.如权利要求1-4任一项所述的方法,其中,所述的运行相关信息包括以下任意项信息:运行所述应用服务的在线设备数量、所述在线设备的负载配置、以及所述应用服务的总限流目标。
7.一种用于分布式系统的流量管理方法,由应用服务的管理设备执行,所述方法包括:
获取所述应用服务在所有运行设备上的运行相关信息;以及
响应于所述运行设备的请求,向所述运行设备提供反馈,使所述运行设备基于所述反馈获取分解限流目标、并根据所述分解限流目标对所述应用服务进行流量控制,所述分解限流目标基于所述运行相关信息得到。
8.如权利要求7所述的方法,其中,所述的向所述运行设备提供反馈,包括:
向所述运行设备反馈所述运行相关信息,使所述运行设备基于所述运行相关信息通过计算得到所述分解限流目标;或者
向所述运行设备反馈所述分解限流目标。
9.如权利要求7所述的方法,还包括:
监听所述运行相关信息的变化,并在监听到所述变化时通知所述运行设备发起所述请求,或者在监听到所述变化时向所述运行设备提供所述反馈。
10.一种用于分布式系统的流量管理装置,由应用服务的运行设备实施,所述装置包括:
请求模块,设置为向所述应用服务的管理设备发起请求;
获取模块,设置为基于所述管理设备对所述请求的反馈,获取所述应用服务在所述运行设备上的分解限流目标,所述分解限流目标基于所述应用服务在所有运行设备上的运行相关信息得到;以及
限流模块,设置为根据所述分解限流目标对所述应用服务进行流量控制。
11.一种用于分布式系统的流量管理装置,由应用服务的管理设备实施,所述装置包括:
监听模块,设置为获取所述应用服务在所有运行设备上的运行相关信息;以及
反馈模块,设置为响应于所述运行设备的请求,向所述运行设备提供反馈,使所述运行设备基于所述反馈获取分解限流目标、并根据所述分解限流目标对所述应用服务进行流量控制,所述分解限流目标基于所述运行相关信息得到。
12.一种存储有计算机程序的存储介质,所述计算机程序在由计算设备的处理器运行时,使所述计算设备执行如权利要求1-9中任一项所述的方法。
13.一种计算设备,包括:
处理器;
存储器,存储有可由所述处理器执行的指令;
其中所述处理器被配置为执行如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910125351.8A CN109617831A (zh) | 2019-02-20 | 2019-02-20 | 用于分布式系统的流量管理方法和装置以及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910125351.8A CN109617831A (zh) | 2019-02-20 | 2019-02-20 | 用于分布式系统的流量管理方法和装置以及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109617831A true CN109617831A (zh) | 2019-04-12 |
Family
ID=66018922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910125351.8A Pending CN109617831A (zh) | 2019-02-20 | 2019-02-20 | 用于分布式系统的流量管理方法和装置以及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109617831A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554918A (zh) * | 2019-08-09 | 2019-12-10 | 北京字节跳动网络技术有限公司 | 限流方法、装置、电子设备和计算机可读存储介质 |
CN113765818A (zh) * | 2020-06-28 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 分布式限流方法、装置、设备、存储介质和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130091241A1 (en) * | 2011-10-11 | 2013-04-11 | David Goetz | Distributed Rate Limiting Of Handling Requests |
CN104753805A (zh) * | 2013-12-31 | 2015-07-01 | 腾讯科技(深圳)有限公司 | 分布式流量控制方法、服务器和系统 |
CN106610836A (zh) * | 2016-12-23 | 2017-05-03 | 国网信息通信产业集团有限公司 | 一种微服务运行管理工具 |
CN109005125A (zh) * | 2018-08-24 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 动态限流方法、装置及系统 |
CN109361733A (zh) * | 2018-09-14 | 2019-02-19 | 新华三技术有限公司成都分公司 | 服务质量控制方法及装置 |
-
2019
- 2019-02-20 CN CN201910125351.8A patent/CN109617831A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130091241A1 (en) * | 2011-10-11 | 2013-04-11 | David Goetz | Distributed Rate Limiting Of Handling Requests |
CN104753805A (zh) * | 2013-12-31 | 2015-07-01 | 腾讯科技(深圳)有限公司 | 分布式流量控制方法、服务器和系统 |
CN106610836A (zh) * | 2016-12-23 | 2017-05-03 | 国网信息通信产业集团有限公司 | 一种微服务运行管理工具 |
CN109005125A (zh) * | 2018-08-24 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 动态限流方法、装置及系统 |
CN109361733A (zh) * | 2018-09-14 | 2019-02-19 | 新华三技术有限公司成都分公司 | 服务质量控制方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554918A (zh) * | 2019-08-09 | 2019-12-10 | 北京字节跳动网络技术有限公司 | 限流方法、装置、电子设备和计算机可读存储介质 |
CN113765818A (zh) * | 2020-06-28 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 分布式限流方法、装置、设备、存储介质和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112448858B (zh) | 网络通信控制方法及装置、电子设备和可读存储介质 | |
US20100077250A1 (en) | Virtualization based high availability cluster system and method for managing failure in virtualization based high availability cluster system | |
CN113742031B (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
CN105917690A (zh) | 基于网络功能虚拟化(nfv)在网络中模块间通信的系统、方法和计算机程序 | |
CN114500521A (zh) | 一种算力调度方法、装置、调度设备、系统和存储介质 | |
US9933830B2 (en) | Validating power paths to IT equipment | |
CN106657259B (zh) | 一种用于服务器集群的路由服务器及路由服务方法 | |
CN104243205A (zh) | 一种虚拟交换机故障时的报文处理方法和设备 | |
CN106605213B (zh) | 用于在断续的连通性的情况下进行支持的系统、相应的本地设备以及相应的云端计算平台 | |
CN108965109A (zh) | 一种即时通讯控制方法、装置及存储介质 | |
CN110457176A (zh) | 用于分布式系统的监控方法、装置、存储介质及电子设备 | |
CN109617831A (zh) | 用于分布式系统的流量管理方法和装置以及计算设备 | |
JP2016006653A (ja) | プロバイダのプレゼンス情報に基づいて顧客の要求に応答するための、ネットワーク・ベースの方法およびシステム | |
CN110198335A (zh) | 消息同步方法及装置、电子设备及存储介质 | |
CN111083177A (zh) | 基于协同网关的跨域协同交互方法 | |
CN111770176B (zh) | 流量调度方法及装置 | |
CN114115138A (zh) | 工业现场设备替换系统 | |
CN111510480B (zh) | 一种请求发送方法、装置以及第一服务器 | |
CN105677589A (zh) | 一种访问控制方法、装置及系统 | |
CN111193636A (zh) | 测试单机可用性的方法及装置 | |
CN109600266A (zh) | 一种设备管理命令发布方法及管理设备 | |
CN103179102A (zh) | 一种桌面虚拟化方法、设备及系统 | |
CN115392706A (zh) | 故障机器人调度方法、装置、电子设备和计算机可读介质 | |
CN101883149A (zh) | 参数同步方法、系统、网络键盘及监控平台 | |
CN106951294A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190412 |
|
RJ01 | Rejection of invention patent application after publication |