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

技术编号:27124543 阅读:16 留言:0更新日期:2021-01-25 19:41
本申请涉及通信网络技术领域,涉及一种流量分发控制方法、装置和存储介质。所述方法包括:在存在新增的已启动的目标服务实例时,对于目标服务实例所属服务中的每个服务实例,根据服务实例的启动时间和预热参数,计算服务实例的权重;预热参数包括预热周期和预热步长;下发各个服务实例的权重至Istio代理,通过Istio代理根据各个服务实例的权重进行流量分发;在满足定时任务启动条件时,在间隔预热步长后,再次执行根据服务实例的启动时间和预热参数,计算服务实例的权重的步骤。达到了可以在预热周期内不断增加新启动的服务实例的权重,进而使得服务实例可以渐进式进入全量状态,避免服务实例刚启动时负荷较高并提高业务稳定性的效果。稳定性的效果。

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


[0001]本申请涉及通信网络
,具体涉及一种流量分发控制方法、装置和存储介质。

技术介绍

[0002]在基于Istio的服务网络环境中,一类服务实例启动后需要根据服务启动时间渐近式进入完全服务的状态,针对这类服务实例的请求流量也需要根据服务启动时间渐近式递增并逐渐达到全量状态。Istio目前并未提供相应的机制,也未提供相应问题的参考解决方案。
[0003]任何服务实例启动完成后拥有和其他实例相同的权重,导致服务启动后立即进入全量服务状态。服务实例启动完成后并未进入完全服务状态,瞬时的全量访问,一方面会造成服务实例带病工作不堪重负,另一方面也会由于服务能力的限制导致启动后的一段时间内大量用户请求失败,影响业务稳定性。

技术实现思路

[0004]有鉴于此,本申请实施例提供了一种流量分发控制方法、装置和存储介质,以解决现有技术中的问题。
[0005]根据第一方面,本申请实施例提供了一种流量分发控制方法,所述方法包括:
[0006]在存在新增的已启动的目标服务实例时,对于所述目标服务实例所属服务中的每个服务实例,根据所述服务实例的启动时间和预热参数,计算所述服务实例的权重;所述预热参数包括预热周期和预热步长;
[0007]下发各个服务实例的权重至Istio代理,通过所述Istio代理根据各个服务实例的权重进行流量分发;
[0008]在满足定时任务启动条件时,在间隔所述预热步长后,再次执行所述根据服务实例的启动时间和预热参数,计算所述服务实例的权重的步骤。
[0009]可选的,所述根据所述服务实例的启动时间和预热参数,计算所述服务实例的权重,包括:
[0010]所述服务实例的权重=min(当前时间-服务实例的启动时间,预热周期)。
[0011]可选的,检测是否满足所述定时任务启动条件的步骤包括:
[0012]检测所述权重是否达到所述预热周期;
[0013]若所述权重未达到所述预热周期,则确定满足所述定时任务启动条件。
[0014]可选的,所述方法还包括:
[0015]若所述权重达到所述预热周期,则流程结束。
[0016]可选的,若所述目标服务实例所对应目标服务包括至少两个服务实例且所述至少两个服务实例在小于预设间隔的时间内陆续启动,则所述方法还包括:
[0017]获取当前时刻所述目标服务中已启动的各个服务实例的实际最后启动时间;
[0018]获取最近一次下发权重时所述目标服务的关联最后启动时间;
[0019]若所述关联最后启动时间早于所述实际最后启动时间,则确定不满足所述定时任务启动条件。
[0020]可选的,所述方法还包括:
[0021]若所述关联最后启动时间不早于所述实际最后启动时间,则确定满足所述定时任务启动条件。
[0022]可选的,判断是否存在目标服务实例的步骤包括:
[0023]监听服务数据中心,所述服务数据中心中包括服务实例在启动完成后注册的注册信息;
[0024]根据监听的所述服务数据中心确定是否有新增的已启动的服务实例。
[0025]第二方面,提供了一种流量分发控制装置,所述装置包括存储器和处理器,所述存储器中存储有至少一条程序指令,所述处理器通过加载并执行所述至少一条程序指令以实现第一方面所述的方法。
[0026]第三方面,提供了一种计算机存储介质,所述存储介质中存储有至少一条程序指令,所述至少一条程序指令用于被处理器加载并执行以实现第一方面所述的方法。
[0027]通过在存在新增的已启动的目标服务实例时,对于所述目标服务实例所属服务中的每个服务实例,根据所述服务实例的启动时间和预热参数,计算所述服务实例的权重;所述预热参数包括预热周期和预热步长;下发各个服务实例的权重至Istio代理,通过所述Istio代理根据各个服务实例的权重进行流量分发;在满足定时任务启动条件时,在间隔所述预热步长后,再次执行所述根据服务实例的启动时间和预热参数,计算所述服务实例的权重的步骤。解决了现有技术服务实例启动后立即进入全量服务状态时可能会导致服务实例负荷较高以及业务稳定性差的问题;达到了可以在预热周期内不断增加新启动的服务实例的权重,进而使得服务实例可以渐进式进入全量状态,避免服务实例刚启动时负荷较高并提高业务稳定性的效果。
[0028]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。
附图说明
[0029]图1为本专利技术一个实施例提供的流量分发控制方法的方法流程图。
具体实施方式
[0030]下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0031]在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0032]在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。
[0033]此外,下面所描述的本专利技术不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0034]请参考图1,其示出了本申请一个实施例提供的流量分发控制方法的方法流程图,该方法用于Istio中,如图1所示,该方法包括:
[0035]步骤101,在存在新增的已启动的目标服务实例时,对于所述目标服务实例所属服务中的每个服务实例,根据所述服务实例的启动时间和预热参数,计算所述服务实例的权重。
[0036]通常情况下,一个服务可以包括多个服务实例,本实施例可以为每个服务实例预先设置预热参数,预设参数可以包括是否预热(enableWarmUp)、预热周期(warmupDuration)和预热步长(warmupInterval)。其中,预热周期和预热步长均为预先设定的数值,比如,预热周期可以为90s,预热步长可以为5s。为预热定制annotation:sidecar.istio.io/eanbleWarmUp,支持在服务粒度控制是否要为特定服务/实例开启预热本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种流量分发控制方法,其特征在于,用于Istio中,所述方法包括:在存在新增的已启动的目标服务实例时,对于所述目标服务实例所属服务中的每个服务实例,根据所述服务实例的启动时间和预热参数,计算所述服务实例的权重;所述预热参数包括预热周期和预热步长;下发各个服务实例的权重至Istio代理,通过所述Istio代理根据各个服务实例的权重进行流量分发;在满足定时任务启动条件时,在间隔所述预热步长后,再次执行所述根据服务实例的启动时间和预热参数,计算所述服务实例的权重的步骤。2.根据权利要求1所述的方法,其特征在于,所述根据所述服务实例的启动时间和预热参数,计算所述服务实例的权重,包括:所述服务实例的权重=min(当前时间-服务实例的启动时间,预热周期)。3.根据权利要求1所述的方法,其特征在于,检测是否满足所述定时任务启动条件的步骤包括:检测所述权重是否达到所述预热周期;若所述权重未达到所述预热周期,则确定满足所述定时任务启动条件。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述权重达到所述预热周期,则流程结束。5.根据权利要求1至4任一所述的方法,其特征在于,若所述目标服务实例所对应目...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:苏州斯玛维科技有限公司
类型:发明
国别省市:

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

1
相关领域技术
  • 暂无相关专利