流量控制方法、装置、容器和存储介质制造方法及图纸

技术编号:32178523 阅读:16 留言:0更新日期:2022-02-08 15:39
本公开实施例公开了一种流量控制方法、装置、容器和存储介质。该方法包括:确定单位时间内微服务对服务请求的平均调度时延;其中,所述服务请求是通过服务网格代理转发给所述微服务的请求;根据所述平均调度时延,确定所述微服务对应的目标限流阈值,并利用所述目标限流阈值对所述微服务进行流量控制。该方法能够通过计算单位时间内微服务对服务请求的平均调度时延,自动探测微服务当前负载信息,从而自动化决策微服务对应的限流阈值,提高了对微服务限流的灵活性。服务限流的灵活性。服务限流的灵活性。

【技术实现步骤摘要】
流量控制方法、装置、容器和存储介质


[0001]本公开涉及互联网
,尤其涉及一种流量控制方法、装置、容器和存储介质。

技术介绍

[0002]微服务化将单体应用拆分成多个高内聚、低耦合的小服务,提高了系统开发效率和扩展性,故其应用范围越来越广泛。而对于微服务的治理也带来了新的挑战,其中,微服务的流量控制是主要考虑的问题之一。
[0003]目前主要使用令牌桶算法或者漏桶算法对微服务进行限流操作,但是,该方式需要针对每种微服务进行压测,在微服务数量庞大时,压测工作量非常大,且无法适应微服务的迭代,导致对微服务限流的灵活性较差。

技术实现思路

[0004]针对传统方式存在的技术问题,本公开提供一种流量控制方法、装置、容器和存储介质。
[0005]第一方面,本公开实施例提供了一种流量控制方法,应用于微服务所在容器中的服务网格代理中,所述方法包括:
[0006]确定单位时间内所述微服务对服务请求的平均调度时延;其中,所述服务请求是通过所述服务网格代理转发给所述微服务的请求;
[0007]根据所述平均调度时延,确定所述微服务对应的目标限流阈值,并利用所述目标限流阈值对所述微服务进行流量控制。
[0008]第二方面,本公开实施例提供一种流量控制装置,集成于微服务所在容器中的服务网格代理中,所述装置包括:
[0009]第一确定模块,用于确定单位时间内所述微服务对服务请求的平均调度时延;其中,所述服务请求是通过所述服务网格代理转发给所述微服务的请求;
[0010]第二确定模块,用于根据所述平均调度时延,确定所述微服务对应的目标限流阈值;
[0011]控制模块,用于利用所述目标限流阈值对所述微服务进行流量控制。
[0012]第三方面,本公开实施例提供一种容器,所述容器中部署有服务网格代理和微服务;
[0013]所述微服务,用于对所述服务网格代理转发的服务请求进行处理;
[0014]所述服务网格代理,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本公开实施例第一方面提供的流量控制方法的步骤。
[0015]第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本公开实施例第一方面提供的流量控制方法的步骤。
[0016]本公开实施例提供的技术方案,微服务所在容器中的服务网格代理能够在微服务
运行过程中,通过计算单位时间内微服务对服务请求的平均调度时延,自动探测微服务当前负载信息,从而自动化决策微服务对应的限流阈值,且在探测微服务当前负载信息的过程中,并不影响微服务的正常运行,提高了对微服务限流的灵活性。同时,指标“微服务对服务请求的平均调度时延”与具体的微服务本身无关,即上述指标对于所有微服务来说都是适用的,通过上述指标可以探测每种微服务的当前负载信息,无需针对每种微服务单独调整限流参数,能够适应微服务的迭代,满足了微服务的各种限流场景,从而提高了本方案的普适性。
附图说明
[0017]结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
[0018]图1为本公开实施例提供的流量控制方法应用的一种架构图;
[0019]图2为本公开实施例提供的流量控制方法的一种流程示意图;
[0020]图3为本公开实施例提供的确定微服务对服务请求的平均调度时延的一种流程示意图;
[0021]图4为本公开实施例提供的流量控制方法的另一种流程示意图;
[0022]图5为本公开实施例提供的确定目标限流阈值的一种原理示意图;
[0023]图6为本公开实施例提供的流量控制装置的一种结构示意图;
[0024]图7为本公开实施例提供的电子设备的一种结构示意图。
具体实施方式
[0025]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0026]应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0027]本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0028]需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0029]需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0030]本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0031]图1为本公开实施例提供的流量控制方法应用的一种架构图。如图1所示,服务网格代理10作为一个和微服务11对等的代理服务,和微服务11部署在同一主机中,其中,服务网格代理10主要用于提供微服务11之间的通信能力,如服务发现、认证授权、负载均衡、流量控制以及监控追踪等等。微服务11主要用于接收服务网格代理10转发的服务请求,对服务请求进行处理等等。上述服务网格代理10对微服务11透明,与微服务11之间相互解耦,服务网格代理10在不需要微服务11接入的情况下,可以单独进行升级。可选地,服务网格代理10和微服务11可以部署在同一容器中。其中,容器为服务网格代理10和微服务11提供了相对独立的运行环境。
[0032]在本公开实施例中,可以将对微服务的流量控制算法部署在微服务所在容器中的服务网格代理中,通过服务网格代理对微服务进行流量控制。由于服务网格代理对微服务是透明的,因此,可以在微服务无感知的情况下自动对服务网格代理中的流量控制算法进行升级,避免对微服务的限流操作需要微服务接入升级等困难。
[0033]接下来,具体介绍对微服务的流量控制过程,参见图2,该方法可以包括:
[0034]S201、确定单位时间内所述微服务对服务请求的平均调度时延。
[0035]具体的,所述服务请求是通过所述服务网格代理转发给所述微服务的请求。其中,上述调度时延可以理解为服务请求到达微服务后,直至微服务本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种流量控制方法,其特征在于,应用于微服务所在容器中的服务网格代理中,所述方法包括:确定单位时间内所述微服务对服务请求的平均调度时延;其中,所述服务请求是通过所述服务网格代理转发给所述微服务的请求;根据所述平均调度时延,确定所述微服务对应的目标限流阈值,并利用所述目标限流阈值对所述微服务进行流量控制。2.根据权利要求1所述的方法,其特征在于,所述确定单位时间内所述微服务对服务请求的平均调度时延,包括:获取单位时间内向所述微服务转发的各服务请求的转发时间;获取所述微服务对所述各服务请求的开始处理时间;基于所述转发时间和所述开始处理时间,确定单位时间内所述微服务对服务请求的平均调度时延。3.根据权利要求2所述的方法,其特征在于,所述基于所述转发时间和所述开始处理时间,确定单位时间内所述微服务对服务请求的平均调度时延,包括:基于各服务请求的开始处理时间和对应的各服务请求的转发时间之间的差值,确定所述微服务对各服务请求的调度时延;基于各服务请求的调度时延,确定单位时间内所述微服务对服务请求的平均调度时延。4.根据权利要求2所述的方法,其特征在于,在确定单位时间内所述微服务对服务请求的平均调度时延之前,所述方法还包括:接收服务调用方发送的服务请求;在确定所述微服务的处理能力未超过所述微服务对应的当前限流阈值时,向所述微服务转发所述服务请求,并存储所述服务请求的转发时间。5.根据权利要求2所述的方法,其特征在于,所述获取所述微服务对各服务请求的开始处理时间,包括:接收所述微服务针对各服务请求的服务响应;对各服务响应进行解析,以提取所述微服务对各服务请求的开始处理时间...

【专利技术属性】
技术研发人员:赵国玉
申请(专利权)人:北京有竹居网络技术有限公司
类型:发明
国别省市:

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

1