一种微服务流量调度方法及相关组件技术

技术编号:27274127 阅读:11 留言:0更新日期:2021-02-06 11:39
本申请公开了一种微服务流量调度方法,该方法通过根据预设的服务级属性的流量调度配置确定服务请求中服务对应的微服务,实现流量调度,通过不同的流量调度配置实现不同形式的流量调度,并调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由实现对于服务请求的处理,该方法中以基础设施的方式提供给用户非侵入的流量调度能力,使用户可以自主地控制服务之间的流量调用过程,同时代码中完全不用嵌入任何流量调度的逻辑,通过流量调度配置步骤,就可以实现这些流量调度能力,为应用组件的优化管理手段提供了有效的支撑。本申请还提供了一种微服务流量调度设备、路由代理装置及一种可读存储介质,具有上述有益效果。果。果。

【技术实现步骤摘要】
一种微服务流量调度方法及相关组件


[0001]本申请涉及计算机软件
,特别涉及一种微服务流量调度方法、设备、路由代理装置及一种可读存储介质。

技术介绍

[0002]随着越来越多的应用迁移到云上,原来的单个应用拆分为许多分散的微服务,应用的运行需要微服务之间的调用,一旦某个过程出错(组件越多,出错的概率也就越大),就需要花费大量的时间排查和处理;另外,对于已经上线的稳定应用,有时候我们需要通过精细化的运营手段(比如可以通过AB测试来实现)来获得用户数量的增长或者优化用户体验;在确定已经上线的应用的待优化点后,需要对于应用组件进行升级,而在应用组件的升级过程中,很多情况是同时存在不同的版本以测试验证哪个版本更好(比如执行金丝雀发布),如果版本升级了API可能还需要自动地控制发布期间不同版本访问不同的地址。对于上述这些执行过程都需要智能的流量控制机制,即对于所有微服务组件进行数据处理请求的数量控制。
[0003]目前对于微服务的流量控制是相关技术人员采用ingress(用于管理对集群中的服务的外部访问的API对象的虚拟主机)和nginx(一种代理服务器)针对待流量控制的微服务进行流量规则设置实现流量分发,以控制流向该微服务组件的数据请求的数量。而该种方法需要针对每个微服务组件进行规则设置,在规则设置时非常麻烦,特别是批量更改多个服务,面对各种svc(Switching Virtual Circuit交换虚拟电路)和path(设备可执行文件的搜索路径)只能手动维护,无法实现批量更改,而且这些手动配置不够灵活和安全,同时对于项目的测试和上线平添了很多风险,通过这种方式实现AB测试、金丝雀发布和流量分割等应用组件的优化管理手段时极有可能需要额外的开发,另外这些相似的功能如果每个组件都实现一遍是非常冗余的。
[0004]因此,如何简化应用组件的优化管理手段的实现,提升系统应用的可靠性以及稳定性,是本领域技术人员急需解决的问题。

技术实现思路

[0005]本申请的目的是提供微服务流量调度方法,该方法可以简化应用组件的优化管理手段的实现,提升系统应用的可靠性以及稳定性;本申请的另一目的是提供微服务流量调度设备、路由代理装置及一种可读存储介质。
[0006]为解决上述技术问题,本申请提供一种微服务流量调度方法,包括:
[0007]路由代理接收到服务请求后,识别所述服务请求中的请求信息;
[0008]确定所述请求信息对应的服务;
[0009]根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务;
[0010]调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理
所述服务请求。
[0011]可选地,在所述路由代理接收到服务请求之前,还包括:
[0012]确定所有待调用的微服务组件,并将所述微服务组件作为目的服务;
[0013]为各所述目的服务添加对应的查找匹配信息;
[0014]配置各所述目的服务对应的路由信息,生成路由资源文件。
[0015]可选地,为各所述目的服务添加对应的查找匹配信息,包括:
[0016]配置所述目的服务对应类型资源的名称以及对应路由规则的优先级;
[0017]通过标签指定所述目的服务的版本信息。
[0018]可选地,所述微服务流量调度方法还包括:为同一服务项目下不同服务版本的目的服务对应的所述标签设置路由权重;
[0019]则相应地,根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务,包括:
[0020]确定用于实现所述服务的微服务,作为初选微服务;
[0021]确定各所述初选微服务的标签对应的路由权重;
[0022]按照所述路由权重的比例确定当前待调度的微服务,作为目的服务。
[0023]可选地,所述微服务流量调度方法还包括:
[0024]当接收到微服务故障注入测试请求后,确定待注入故障的目的服务;
[0025]根据待注入的故障类型对所述目的服务的响应时间以及所述路由权重进行参数设置;
[0026]根据设置后的所述响应时间以及所述路由权重对所述服务请求进行微服务分配。
[0027]可选地,所述微服务流量调度方法还包括:
[0028]定义Mixer模板;
[0029]基于所述Mixer模板创建限流适配器;
[0030]在所述限流适配器中创建限流规则;
[0031]在所述限流适配器中定义达到限流条件后的反馈信息;
[0032]将所述限流规则绑定至对应的微服务组件;
[0033]调用所述限流适配器监控数据流量并进行流量限制处理。
[0034]可选地,所述微服务流量调度方法还包括:
[0035]为所述路由资源文件设置外部访问端口;
[0036]则相应地,调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求,包括:
[0037]当所述服务请求为系统外部的访问请求时,通过所述外部访问接口调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求。
[0038]本申请还提供了一种路由代理装置,该装置包括:
[0039]请求识别单元,用于接收到服务请求后,识别所述服务请求中的请求信息;
[0040]服务确定单元,用于确定所述请求信息对应的服务;
[0041]流量调度单元,用于根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务;
[0042]路由调用单元,用于调用路由资源文件根据预设的路由匹配规则调用所述目的服
务匹配的路由处理所述服务请求。
[0043]本申请还提供了一种微服务流量调度设备,包括:
[0044]存储器,用于存储计算机程序;
[0045]处理器,用于执行所述计算机程序时实现所述的微服务流量调度方法的步骤。
[0046]本申请还提供了一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述的微服务流量调度方法的步骤。
[0047]本申请所提供的微服务流量调度方法中通过根据预设的服务级属性的流量调度配置确定服务请求中服务对应的微服务,实现流量调度,通过不同的流量调度配置实现不同形式的流量调度,并调用路由资源文件根据预设的路由匹配规则调用目的服务匹配的路由实现对于服务请求的处理,该方法中以基础设施的方式提供给用户非侵入的流量调度能力,使用户可以自主地控制服务之间的流量调用过程,开发者可以使用自己喜欢的任何语言和框架进行业务开发而不用关心服务调用的路由规则、负载均衡、熔断、超时策略、重试、限流、故障注入、流量镜像等的实现,使开发者专注于自己的业务而无须关注服务的流量管理,同时代码中完全不用嵌入任何流量调度的逻辑,通过流量调度配置步骤,就可以实现这些流量调度能力,为蓝绿发布、AB测试和金丝雀发布等提供了有效的支撑。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务流量调度方法,其特征在于,该方法包括:路由代理接收到服务请求后,识别所述服务请求中的请求信息;确定所述请求信息对应的服务;根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务;调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求。2.如权利要求1所述的微服务流量调度方法,其特征在于,在所述路由代理接收到服务请求之前,还包括:确定所有待调用的微服务组件,并将所述微服务组件作为目的服务;为各所述目的服务添加对应的查找匹配信息;配置各所述目的服务对应的路由信息,生成路由资源文件。3.如权利要求2所述的微服务流量调度方法,其特征在于,为各所述目的服务添加对应的查找匹配信息,包括:配置所述目的服务对应类型资源的名称以及对应路由规则的优先级;通过标签指定所述目的服务的版本信息。4.如权利要求3所述的微服务流量调度方法,其特征在于,还包括:为同一服务项目下不同服务版本的目的服务对应的所述标签设置路由权重;则相应地,根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务,包括:确定用于实现所述服务的微服务,作为初选微服务;确定各所述初选微服务的标签对应的路由权重;按照所述路由权重的比例确定当前待调度的微服务,作为目的服务。5.如权利要求4所述的微服务流量调度方法,其特征在于,还包括:当接收到微服务故障注入测试请求后,确定待注入故障的目的服务;根据待注入的故障类型对所述目的服务的响应时间以及所述路由权重进行参数设置;根据设置后的所述响应时间以及所述路由权重对...

【专利技术属性】
技术研发人员:刘岩岩
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1