买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】服务版本权重灰度发布的系统_四川长虹电器股份有限公司_201910465616.9 

申请/专利权人:四川长虹电器股份有限公司

申请日:2019-05-30

公开(公告)日:2020-09-15

公开(公告)号:CN110198353B

主分类号:H04L29/08(20060101)

分类号:H04L29/08(20060101);H04L12/24(20060101);G06F8/71(20180101)

优先权:

专利状态码:有效-授权

法律状态:2020.09.15#授权;2019.09.27#实质审查的生效;2019.09.03#公开

摘要:本发明涉及分布式环境应用版本管理领域,公开了一种服务版本权重灰度发布的系统,解决可动态的根据服务版本配置的版本权重负载服务请求,做到服务版本权重的负载,灰度发布服务版本。本发明包括注册中心、数据库和服务版本权重管理模块;注册中心提供有一个可动态的修改服务版本权重信息接口,服务版本权重管理模块调用该接口可以动态的修改服务版本权重信息;注册中心启动或者重启的时候,会从数据库拉取已经配置的所有的服务版本权重信息,并存入注册中心自身内存中的服务节点列表里,以供注册的服务消费者在拉取服务节点列表的时候,能够获取到服务节点列表中所对应的每个不同版本服务节点的不同权重。本发明适用于服务版本权重灰度发布。

主权项:1.服务版本权重灰度发布的系统,其特征在于,包括注册中心、数据库、服务版本权重管理模块以及服务消费者;注册中心提供有一个接口,服务版本权重管理模块调用该接口可以动态的修改服务版本权重信息;注册中心启动或者重启的时候,会从数据库拉取已经配置的所有的服务版本权重信息,并存入注册中心自身内存中的服务节点列表里,以供注册的服务消费者在拉取服务节点列表的时候,能够获取到服务节点列表中所对应的每个不同版本服务节点的不同权重,其中,所述服务节点列表包括服务节点的名称、节点版本号、权重值以及IP端口信息;同时,在注册中心向服务消费者提供服务节点的不同版本的不同权重的时候,注册中心还将向服务消费者提供用于版本权重、灰度发布控制的SDK;服务消费者需要调用服务节点的时候,根据服务节点列表中不同版本的不同权重,按照SDK里的版本权重算法选取服务节点列表中的具体服务节点进行调用。

全文数据:服务版本权重灰度发布的系统技术领域本发明涉及分布式环境应用版本管理领域,特别涉及版本权重流量切换,灰度发布。背景技术在复杂的分布式环境下,服务之间相互调用复杂,服务功能迭代速度很快,需要不断的正是环境新增或者修改服务提供的功能,需要做到平滑的切换版本并且可快速回滚替换。目前常规的灰度发布方案一种是基于代码层面的改造,针对不同用户或者参数调用服务不同版本的不同逻辑,此种方案对代码侵入性很强,且不具备通用性;另外一种方案是基于流量接入层如nginx做对应的配置将流量切换不同版本,此种方案需要外部配置,且不能按照一定的版本权重负载不同版本的服务。发明内容本发明要解决的技术问题是:提供一种服务版本权重灰度发布的系统,解决可动态的根据服务版本配置的版本权重负载服务请求,做到服务版本权重的负载,灰度发布服务版本。为解决上述问题,本发明采用的技术方案是:服务版本权重灰度发布的系统,包括注册中心、数据库、服务版本权重管理模块以及服务消费者;注册中心提供有一个接口,服务版本权重管理模块调用该接口可以动态的修改服务版本权重信息;注册中心启动或者重启的时候,会从数据库拉取已经配置的所有的服务版本权重信息,并存入注册中心自身内存中的服务节点列表里,以供注册的服务消费者在拉取服务节点列表的时候,能够获取到服务节点列表中所对应的每个不同版本服务节点的不同权重,其中,所述服务节点列表包括服务节点的名称、节点版本号、权重值以及IP端口信息;同时,在注册中心向服务消费者提供服务节点的不同版本的不同权重的时候,注册中心还将向服务消费者提供用于版本权重、灰度发布控制的SDK;服务消费者需要调用服务节点的时候,根据服务节点列表中不同版本的不同权重,按照SDK里的版本权重算法选取服务节点列表中的具体服务节点进行调用。进一步的,服务消费者调用服务节点的具体步骤包括:将被调用服务的服务节点列表中的所有服务节点的版本权重相加得到一个总值Count;将每个服务节点的版本权重除以总值Count得到一个百分比值;随机一个0~100%的值,该值会落在上一步产生的每个节点的百分比值范围内,则取该服务节点进行调用。本发明的有益效果是:本发明很好的解决可动态的根据服务版本配置的版本权重负载服务请求,且对代码几乎无侵入,具有很强的通用性。附图说明图1是实施例的结构框图;图2是版本权重的传递流程图;图3是服务节点调用的流程图;图4是版本权重的限流效果图。具体实施方式本发明整体思路上摒弃了常规的流量控制和版本灰度方案,不在服务提供方入口做版本权重的流量控制和灰度功能,而是将流量真正的来源即服务调用方做被调用服务的版本权重和灰度控制,即每个服务调用方都按照版本的权重负载服务提供者的流量,那么服务提供者接收到的整体的版本流量就是按照该服务提供方所配置的版本权重、灰度发布规则所控制的版本流量。本发明具体方案如下:本专利基于对注册中心改造可使其能接收拉取服务版本权重,改造后的注册中心主要具备两个功能:1、注册中心启动或重启能自动去数据中心拉取已配置的所有服务的版本权重信息并存入自身内存,并暴露一个实时修改版本权重的接口,在服务版本权重有变动的时候,服务版本权重管理端可通过调用该接口实时修改服务版本权重;2、服务消费者在拉取服务节点列表的时候,能够获取到服务节点列表中所对应的每个不同版本服务节点的不同权重。其中,服务节点列表可包括服务节点的名称、节点版本号、权重值以及IP端口信息等。另外,注册中心向服务消费者提供服务节点的不同版本的不同权重的时候,注册中心还将向服务消费者提供用于版本权重、灰度发布控制的SDK,在服务消费者需要调用服务节点的时候,根据服务节点列表中不同版本的不同权重,按照SDK里的版本权重算法选取服务节点列表中的具体服务节点进行调用,以完成对服务提供者的版本权重控制,灰度发布等功能。为使本发明的目的、技术方案和优点更加清楚,下面结合实施例对本发明做进一步地详细描述。实施例提供一种服务版本权重灰度发布的系统,如图1所示,包括注册中心、数据库、服务版本权重管理模块以及服务消费者;其中,注册中心提供有一个接口,服务版本权重管理模块调用该接口可以动态的修改服务版本权重信息;注册中心启动或者重启的时候,会从数据库拉取已经配置的所有的服务版本权重信息,并存入注册中心自身内存中的服务节点列表里,以供注册的服务消费者在拉取服务节点列表的时候,能够获取到服务节点列表中所对应的每个不同版本服务节点的不同权重,其中,所述服务节点列表包括服务节点服务提供者的名称、节点版本号、权重值以及IP端口信息;同时,在注册中心向服务消费者提供服务节点的不同版本的不同权重的时候,注册中心还将向服务消费者提供用于版本权重、灰度发布控制的SDK。实施例的一种工作流程如下:步骤一、注册中心启动或者重启的时候会去数据库拉取已经配置的所有的服务版本权重信息,并存入注册中心自身内存中的服务节点列表里,以供注册的服务消费者在拉取服务节点列表的时候,能够获取到服务节点列表中所对应的每个不同版本服务节点的不同权重。并且注册中心会提供一个可修改版本权重信息的接口,在服务版本权重管理模块修改版本权重信息时调用该接口以动态的修改版本权重信息。以上步骤中的版本信息拉取刷新也可以跳过注册中心,服务消费者可以直接从数据库拉取服务节点相关版本权重信息。而如图2所示,实施例将服务节点的版本权重信息加载到注册中心是为了提高拉取和刷新版本权重信息的效率和实时性。步骤二、服务节点启动注册到注册中心,注册中心会根据注册的服务节点的名称从数据库拉取一次该服务节点的版本权重信息,以保证该服务节点的版本权重信息的实时性。步骤三、在需要调整服务节点不同版本的权重或要做新版本的灰度发布时,可通过服务版本权重管理模块调用注册中心的接口,从配置服务节点不同版本的不同权重值默认每个版本的权重值是100%。步骤四、服务消费者会定时去注册中心拉取所有需要调用的服务的服务节点列表,并缓存到注册中心本地的缓存中,该服务节点列表包括服务节点的名称、节点版本号、权重值以及IP端口信息。服务消费者在根据服务节点的名称调用服务节点的时候,会先从本地缓存查询对应的服务节点列表,当缓存中没有对应服务节点列表时会从注册中心中再次拉取该名称对应的所有的服务节点列表。步骤五、服务消费者根据拉取到的服务节点的不同版本的不同权重按照权重负载算法选择一个服务节点进行掉头,该算法主要包括:1、将被调用服务的服务节点列表中的所有服务节点的版本权重相加得到一个总值Count;2、将每个服务节点的版本权重除以总值Count得到一个百分比值;3、随机一个0~100%的值,该值会落在上一步产生的每个节点的百分比值范围内,则取该服务节点进行调用。以上步骤四和步骤五,如图3,服务消费者在要去请求某个服务节点的时候,先去本地缓存缓存的数据可以从注册中心获取也可以直接从配置数据库获取查询服务节点列表,列表信息如图3,主要包括服务节点的名称、节点版本号、权重值以及IP端口信息。服务消费者根据以上信息中的版本权重按照SDK中的版本权重算法选取其中一个节点,请求服务节点中对应的节点接口。步骤六、如果要做灰度发布,则只需要将老版本的版本权重配置为一个较大比列的值,将新版本的版本权重值配置为一个较小比例权重,并添加到注册中心的服务节点列表中。服务消费者会拉取到新版本的版本权重信息,会根据配置将较小流量负载到新版本上,在服务节点的新版本的功能测试完成后,可以将老版本的版本权重配置成0,则所有的流量都会切换到新版本上,则完成了整个服务版本的灰度发布功能。为更加直观的体现实施例中版本权重的限流过程,可参见图4,图中服务节点ServiceA有三个不同版本分别为V-1.0.0,V-1.0.5,V-2.0.0三个版本的的权重分别配置为0,10,90。在服务的消费方,图中服务消费者ConsumerA、ConsumerB、ConsumerC。三个分别请求ServiceA都按照配置的版本权重去请求ServiceA。那么ServiceA的不同版本的节点接收到的请求流量的总和就是按照ServiceA所配置的版本权重分配的流量比例。如图4中ServiceA版本为V-1.0.0的流量为0,斑纹为V-1.0.5的流量为10%,V-2.0.0的流量为90%。最终实现了按照版本权重分配流量。

权利要求:1.服务版本权重灰度发布的系统,其特征在于,包括注册中心、数据库、服务版本权重管理模块以及服务消费者;注册中心提供有一个接口,服务版本权重管理模块调用该接口可以动态的修改服务版本权重信息;注册中心启动或者重启的时候,会从数据库拉取已经配置的所有的服务版本权重信息,并存入注册中心自身内存中的服务节点列表里,以供注册的服务消费者在拉取服务节点列表的时候,能够获取到服务节点列表中所对应的每个不同版本服务节点的不同权重,其中,所述服务节点列表包括服务节点的名称、节点版本号、权重值以及IP端口信息;同时,在注册中心向服务消费者提供服务节点的不同版本的不同权重的时候,注册中心还将向服务消费者提供用于版本权重、灰度发布控制的SDK;服务消费者需要调用服务节点的时候,根据服务节点列表中不同版本的不同权重,按照SDK里的版本权重算法选取服务节点列表中的具体服务节点进行调用。2.如权利要求1所述的服务版本权重灰度发布的系统,其特征在于,服务消费者调用服务节点的具体步骤包括:将被调用服务的服务节点列表中的所有服务节点的版本权重相加得到一个总值Count;将每个服务节点的版本权重除以总值Count得到一个百分比值;随机一个0~100%的值,该值会落在上一步产生的每个节点的百分比值范围内,则取该服务节点进行调用。

百度查询: 四川长虹电器股份有限公司 服务版本权重灰度发布的系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。