一种微服务治理方法及系统与流程

文档序号:33370920发布日期:2023-03-08 02:13阅读:37来源:国知局
一种微服务治理方法及系统与流程

1.本发明涉及微服务治理技术领域,具体是涉及一种微服务治理方法及系统。


背景技术:

2.微服务是一种架构,一个大型复杂软件应用一般由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的,每个微服务仅关注于完成一件任务。微服务架构下的各个微服务之间耦合度低,能单独部署也可以横向扩容,但是微服务的治理和监控是比较复杂的。微服务请求之间会有错综复杂的依赖关系,一个前端请求一般会依赖于多个后端服务。当此类请求越来越多,占用的计算机资源越来越多的时候,会造成业务系统崩溃。为了解决上述问题,目前会为每个微服务应用提前制定治理策略,不论产生何种微服务请求,都会使用所述治理策略,适用性不好,治理效果不理想,因此,需要提供一种微服务治理方法及系统,旨在解决上述问题。


技术实现要素:

3.针对现有技术存在的不足,本发明的目的在于提供一种微服务治理方法及系统,以解决上述背景技术中存在的问题。
4.本发明是这样实现的,一种微服务治理方法,所述方法包括以下步骤:采集微服务业务系统的故障数据,每份故障数据包括一组微服务前端请求;对故障数据进行分析,确定高频微服务前端请求组,为每个高频微服务前端请求组配置请求组治理策略;接收微服务治理策略,将所述微服务治理策略与微服务应用进行绑定;当配置完成的微服务被调用时,根据对应的微服务治理策略,重新启动所述微服务应用的微服务容器;接收微服务前端请求,对正在执行的所有微服务前端请求进行检测,当正在执行的微服务前端请求属于高频微服务前端请求组时,根据对应的请求组治理策略,重新启动所述微服务应用的微服务容器。
5.作为本发明进一步的方案:所述对故障数据进行分析,确定高频微服务前端请求组的步骤,具体包括:根据故障数据中的微服务前端请求对故障数据进行分类,得到若干个故障数据类别,每一个故障数据类别中所有的故障数据完全相同;根据故障数据类别中微服务前端请求的组数对故障数据类别进行降序排列;确定排列在前n的故障数据类别为高频故障类别,高频故障类别中的任意一组微服务前端请求均为高频微服务前端请求组。
6.作为本发明进一步的方案:所述为每个高频微服务前端请求组配置请求组治理策略的步骤,具体包括:按照治理策略库中的治理策略依次对微服务容器进行重置;
每次重置后,运行高频微服务前端请求组中的所有微服务请求,得到运行效果;取运行效果最好所对应的治理策略为所述高频微服务前端请求组的请求组治理策略。
7.作为本发明进一步的方案:所述请求组治理策略和微服务治理策略为负载均衡策略、熔断治理策略、限流治理策略、容错治理策略或者降级治理策略。
8.作为本发明进一步的方案:所述容错治理策略为failover策略、failfast策略、failback策略和custome策略中的一种或多种;failover策略,指当前实例异常时,当前实例不重试,其他实例最多重试2次,参数值maxautoretries=0,maxautoretriesnextserver=2;failfast策略,指当前实例异常时,当前实例不重试,其他实例不重试,立即返回错误,参数值maxautoretries=0,maxautoretriesnextserver=0;failback策略,指当前实例异常时,当前实例最多重试2次,其他实例不重试,参数值maxautoretries=2,maxautoretriesnextserver=0;custome策略,指当前实例异常时,自定义当前实例和其他实例的重试次数。
9.作为本发明进一步的方案:所述负载均衡策略包括响应时间权值机制、随机机制和轮论机制。
10.作为本发明进一步的方案:所述熔断治理策略包括熔断时间窗、请求失败率和窗口请求数。
11.本发明的另一目的在于提供一种微服务治理系统,所述系统包括:故障数据采集模块,用于采集微服务业务系统的故障数据,每份故障数据包括一组微服务前端请求;请求组治理策略模块,用于对故障数据进行分析,确定高频微服务前端请求组,为每个高频微服务前端请求组配置请求组治理策略;微服务治理策略模块,用于接收微服务治理策略,将所述微服务治理策略与微服务应用进行绑定;第一微服务容器重置模块,当配置完成的微服务被调用时,根据对应的微服务治理策略,重新启动所述微服务应用的微服务容器;第二微服务容器重置模块,用于接收微服务前端请求,对正在执行的所有微服务前端请求进行检测,当正在执行的微服务前端请求属于高频微服务前端请求组时,根据对应的请求组治理策略,重新启动所述微服务应用的微服务容器。
12.作为本发明进一步的方案:所述请求组治理策略模块包括:故障数据分类单元,用于根据故障数据中的微服务前端请求对故障数据进行分类,得到若干个故障数据类别,每一个故障数据类别中所有的故障数据完全相同;降序排列单元,用于根据故障数据类别中微服务前端请求的组数对故障数据类别进行降序排列;高频请求组确定单元,用于确定排列在前n的故障数据类别为高频故障类别,高频故障类别中的任意一组微服务前端请求均为高频微服务前端请求组。
13.作为本发明进一步的方案:所述请求组治理策略模块还包括:微服务容器重置单元,用于按照治理策略库中的治理策略依次对微服务容器进行重置;
运行效果获取单元,每次重置后,运行高频微服务前端请求组中的所有微服务请求,得到运行效果;请求组策略确定单元,用于取运行效果最好所对应的治理策略为所述高频微服务前端请求组的请求组治理策略。
14.与现有技术相比,本发明的有益效果是:本发明通过对故障数据进行分析,确定高频微服务前端请求组,为每个高频微服务前端请求组配置请求组治理策略;将所述微服务治理策略与微服务应用进行绑定;当配置完成的微服务被调用时,根据对应的微服务治理策略,重新启动所述微服务应用的微服务容器;并自动对正在执行的所有微服务前端请求进行检测,当正在执行的微服务前端请求属于高频微服务前端请求组时,根据对应的请求组治理策略,重新启动所述微服务应用的微服务容器。请求组治理策略能够很好的针对治理高频微服务前端请求组导致的问题,适用性更好,治理效果较为理想。
附图说明
15.图1为一种微服务治理方法的流程图。
16.图2为一种微服务治理方法中对故障数据进行分析,确定高频微服务前端请求组的流程图。
17.图3为一种微服务治理方法中为每个高频微服务前端请求组配置请求组治理策略的流程图。
18.图4为一种微服务治理系统的结构示意图。
19.图5为一种微服务治理系统中请求组治理策略模块的结构示意图。
具体实施方式
20.为了使本发明的目的、技术方案及优点更加清晰,以下结合附图及具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
21.以下结合具体实施例对本发明的具体实现进行详细描述。
22.如图1所示,本发明实施例提供了一种微服务治理方法,所述方法包括以下步骤:s100,采集微服务业务系统的故障数据,每份故障数据包括一组微服务前端请求;s200,对故障数据进行分析,确定高频微服务前端请求组,为每个高频微服务前端请求组配置请求组治理策略;s300,接收微服务治理策略,将所述微服务治理策略与微服务应用进行绑定;s400,当配置完成的微服务被调用时,根据对应的微服务治理策略,重新启动所述微服务应用的微服务容器;s500,接收微服务前端请求,对正在执行的所有微服务前端请求进行检测,当正在执行的微服务前端请求属于高频微服务前端请求组时,根据对应的请求组治理策略,重新启动所述微服务应用的微服务容器。
23.需要说明的是,微服务请求之间会有错综复杂的依赖关系,一个前端请求一般会依赖于多个后端服务。当此类请求越来越多,占用的计算机资源越来越多的时候,会造成业
务系统崩溃。为了解决上述问题,目前会为每个微服务应用提前制定治理策略,不论产生何种微服务请求,都会使用所述治理策略,适用性不好,治理效果不理想,本发明实施例旨在解决上述问题。
24.本发明实施例中,首先会采集微服务业务系统的故障数据,每份故障数据包括一组微服务前端请求,一组微服务前端请求包括一个或者多个具体的微服务前端请求,接着本发明实施例会对故障数据进行分析,确定高频微服务前端请求组,为每个高频微服务前端请求组配置请求组治理策略,请求组治理策略能够很好的治理高频微服务前端请求组,如此,适用性更好,治理效果较为理想,容易理解,微服务前端请求的组合是多种多样,难以为每一个微服务前端请求组专门去制定对应的治理策略,因此,还需要根据微服务应用的特性,上传微服务治理策略,将所述微服务治理策略与微服务应用进行绑定,如此当配置完成的微服务被调用时,根据对应的微服务治理策略,重新启动所述微服务应用的微服务容器,也就是说,一般的微服务前端请求使用所述微服务治理策略解决即可,另外,本发明实施例会对正在执行的所有微服务前端请求进行检测,当正在执行的微服务前端请求属于高频微服务前端请求组时,根据对应的请求组治理策略,重新启动所述微服务应用的微服务容器,请求组治理策略的针对性更强,基本能够治理高频发生的各种故障问题,治理效果明显提高。
25.如图2所示,作为本发明一个优选的实施例,所述对故障数据进行分析,确定高频微服务前端请求组的步骤,具体包括:s201,根据故障数据中的微服务前端请求对故障数据进行分类,得到若干个故障数据类别,每一个故障数据类别中所有的故障数据完全相同;s202,根据故障数据类别中微服务前端请求的组数对故障数据类别进行降序排列;s203,确定排列在前n的故障数据类别为高频故障类别,高频故障类别中的任意一组微服务前端请求均为高频微服务前端请求组。
26.本发明实施例中,对故障数据进行分析时,首先需要根据故障数据中的微服务前端请求对故障数据进行分类,得到若干个故障数据类别,每一个故障数据类别中所有的故障数据完全相同,接着需要根据故障数据类别中微服务前端请求的组数对故障数据类别进行降序排列,排列后,确定排列在前n的故障数据类别为高频故障类别,高频故障类别中的任意一组微服务前端请求均为高频微服务前端请求组,容易理解,同一个高频故障类别中的任意一组微服务前端请求的内容都是相同的,所述n为提前设置的定值。
27.如图3所示,作为本发明一个优选的实施例,所述为每个高频微服务前端请求组配置请求组治理策略的步骤,具体包括:s204,按照治理策略库中的治理策略依次对微服务容器进行重置;s205,每次重置后,运行高频微服务前端请求组中的所有微服务请求,得到运行效果;s206,取运行效果最好所对应的治理策略为所述高频微服务前端请求组的请求组治理策略。
28.本发明实施例中,事先建立有治理策略库,所述治理策略库中包含多种治理策略,所述治理策略为负载均衡策略、熔断治理策略、限流治理策略、容错治理策略、降级治理策
略等等,本发明实施例会按照治理策略库中的治理策略依次对微服务容器进行重置,在每次重置后,运行高频微服务前端请求组中的所有微服务请求,得到运行效果,最后取运行效果最好所对应的治理策略为所述高频微服务前端请求组的请求组治理策略,重复上述的步骤,就可以自动为每个高频微服务前端请求组配置请求组治理策略。
29.作为本发明一个优选的实施例,所述请求组治理策略和微服务治理策略为负载均衡策略、熔断治理策略、限流治理策略、容错治理策略或者降级治理策略。所述容错治理策略为failover策略、failfast策略、failback策略和custome策略中的一种或多种;failover策略,指当前实例异常时,当前实例不重试,其他实例最多重试2次,参数值maxautoretries=0,maxautoretriesnextserver=2;failfast策略,指当前实例异常时,当前实例不重试,其他实例不重试,立即返回错误,参数值maxautoretries=0,maxautoretriesnextserver=0;failback策略,指当前实例异常时,当前实例最多重试2次,其他实例不重试,参数值maxautoretries=2,maxautoretriesnextserver=0;custome策略,指当前实例异常时,自定义当前实例和其他实例的重试次数。
30.所述负载均衡策略包括响应时间权值机制、随机机制和轮论机制。响应时间权值,是指提供最小活跃数(时延)的权重路由,支持业务处理慢的服务实例接收较少的请求,防止系统停止响应。这种负载均衡策略适合请求量少且稳定的应用。随机机制,是指提供服务实例随机路由。轮询机制,是指支持按照服务实例的位置信息顺序路由。
31.所述熔断治理策略会自动检测微服务的以下参数:熔断时间窗、请求失败率和窗口请求数。所述限流治理策略所述限流治理策略的规则包括以下步骤:接收微服务平台发送的触发限流的阈值,所述阈值是指每秒请求数量最大值;计算单位时间内的访问次数;判断所述单位时间内的访问次数是否超出所述触发限流的阈值,如果超出所述触发限流的阈值,则拒绝后续的请求,直到下一单位时间。所述降级治理策略是指当服务消费者调用服务提供者的服务时,因延时等原因服务提供者启用了熔断策略,服务消费者hystrix熔断后回调一个相应的本地降级处理方法,从而实现服务降级。微服务平台支持接口级别的降级策略,针对微服务提供者,可以设置开启或关闭降级策略。
32.如图4所示,本发明实施例还提供了一种微服务治理系统,所述系统包括:故障数据采集模块100,用于采集微服务业务系统的故障数据,每份故障数据包括一组微服务前端请求;请求组治理策略模块200,用于对故障数据进行分析,确定高频微服务前端请求组,为每个高频微服务前端请求组配置请求组治理策略;微服务治理策略模块300,用于接收微服务治理策略,将所述微服务治理策略与微服务应用进行绑定;第一微服务容器重置模块400,当配置完成的微服务被调用时,根据对应的微服务治理策略,重新启动所述微服务应用的微服务容器;第二微服务容器重置模块500,用于接收微服务前端请求,对正在执行的所有微服务前端请求进行检测,当正在执行的微服务前端请求属于高频微服务前端请求组时,根据对应的请求组治理策略,重新启动所述微服务应用的微服务容器。
33.本发明实施例中,首先会采集微服务业务系统的故障数据,每份故障数据包括一组微服务前端请求,一组微服务前端请求包括一个或者多个具体的微服务前端请求,接着
本发明实施例会对故障数据进行分析,确定高频微服务前端请求组,为每个高频微服务前端请求组配置请求组治理策略,请求组治理策略能够很好的治理高频微服务前端请求组,如此,适用性更好,治理效果较为理想,容易理解,微服务前端请求的组合是多种多样,难以为每一个微服务前端请求组专门去制定对应的治理策略,因此,还需要根据微服务应用的特性,上传微服务治理策略,将所述微服务治理策略与微服务应用进行绑定,如此当配置完成的微服务被调用时,根据对应的微服务治理策略,重新启动所述微服务应用的微服务容器,也就是说,一般的微服务前端请求使用所述微服务治理策略解决即可,另外,本发明实施例会对正在执行的所有微服务前端请求进行检测,当正在执行的微服务前端请求属于高频微服务前端请求组时,根据对应的请求组治理策略,重新启动所述微服务应用的微服务容器,请求组治理策略的针对性更强,基本能够治理高频发生的各种故障问题,治理效果明显提高。
34.如图5所示,作为本发明一个优选的实施例,所述请求组治理策略模块200包括:故障数据分类单元201,用于根据故障数据中的微服务前端请求对故障数据进行分类,得到若干个故障数据类别,每一个故障数据类别中所有的故障数据完全相同;降序排列单元202,用于根据故障数据类别中微服务前端请求的组数对故障数据类别进行降序排列;高频请求组确定单元203,用于确定排列在前n的故障数据类别为高频故障类别,高频故障类别中的任意一组微服务前端请求均为高频微服务前端请求组。
35.如图5所示,作为本发明一个优选的实施例,所述请求组治理策略模块200还包括:微服务容器重置单元204,用于按照治理策略库中的治理策略依次对微服务容器进行重置;运行效果获取单元205,每次重置后,运行高频微服务前端请求组中的所有微服务请求,得到运行效果;请求组策略确定单元206,用于取运行效果最好所对应的治理策略为所述高频微服务前端请求组的请求组治理策略。
36.以上仅对本发明的较佳实施例进行了详细叙述,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
37.应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
38.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性
和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
39.本领域技术人员在考虑说明书及实施例处的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1