一种服务网格治理方法及系统技术方案

技术编号:29060930 阅读:18 留言:0更新日期:2021-06-30 09:03
本申请涉及一种服务网格治理方法及系统,该方法打通了管理控制台与服务网格之间的数据通道,将管理控制台上的业务接口的信息推送至服务网格,且服务网格中定制有可供发现与获取业务接口的信息的服务接口,服务调用方的容器中的代理可通过调用该服务接口从服务网格获取业务接口的信息,之后,当服务调用方发起服务调用请求时,可根据需求从该代理中获得目标业务接口的信息,进而基于目标业务接口的信息,实现服务调用方与提供方之间的业务调用链。由此可见,本申请实现了在服务网格的容器组织框架中托管业务接口的信息,相应地,可以在容器实例里运行业务接口,实现了对服务网格进行接口级别的服务治理,能够使得服务网格支持对于业务服务的托管。持对于业务服务的托管。持对于业务服务的托管。

【技术实现步骤摘要】
一种服务网格治理方法及系统


[0001]本申请属于微服务架构服务治理
,尤其涉及一种服务网格治理方法及系统。

技术介绍

[0002]服务网格(Service Mesh),通常用于描述构成应用程序的微服务网络以及应用之间的交互。随着规模和复杂性的增长,服务网格越来越难以理解和管理,它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求,例如A/B测试、金丝雀发布、限流、访问控制和端到端认证等。
[0003]Istio是目前最广为人知的一款服务网格架构,是服务网格最常见的实现之一,Istio提供了一个完整的解决方案,通过为整个服务网格提供行为洞察和操作控制来满足微服务应用程序的多样化需求。Kubernetes是目前Istio唯一支持的容器组织框架,Istio基于Kubernetes的云原生,管理的服务是所有跑在Kubernetes云原生上面的一个个容器实例。现有的运营商核心系统的微服务并没有彻底按照微服务的原则进行拆分,更多的还是中心化的一种思路,一个个容器实例里面运行的是多个服务组成的一个应用系统,相对应地,Kubernetes的注册中心托管的微服务具体为应用实例的信息,本质上属于应用级别,无法获取到业务接口级别(Function级别)的服务信息,因此无法实现接口级别的服务治理,无法实现对于业务服务的托管,难以完全适合电信行业的核心系统对于服务治理的要求。

技术实现思路

[0004]有鉴于此,本申请提供了一种服务网格治理方法及系统,目的在于克服现有服务网格(如Istio)存在的上述缺陷,定制符合电信行业微服务的特点和规范的技术特点,实现接口级别的服务治理,进而使得服务网格支持对于业务服务的托管。
[0005]为此,本申请公开如下技术方案:
[0006]一种服务网格治理方法,包括:
[0007]服务的管理控制台将业务接口的信息推送至服务网格;
[0008]服务网格存储管理控制台所推送的业务接口的信息;服务网格中预先定制有可供发现与获取业务接口的信息的服务接口;
[0009]服务调用方的容器中的第一代理调用所述服务接口,利用所述服务接口发现并获取所述服务网格中存储的业务接口的信息;
[0010]所述第一代理存储从服务网格获取的业务接口的信息;
[0011]当服务调用方发起业务级别的服务调用请求时,从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,并基于所述目标业务接口的信息实现服务调用方与服务提供方之间的业务调用链。
[0012]上述方法,优选的,所述服务网格包括控制面和数据面;
[0013]所述服务的管理控制台将业务接口的信息推送至服务网格,包括:
[0014]服务的管理控制台将注册的业务接口的接口数据以及为业务接口配置的治理规则推送至服务网格的控制面。
[0015]上述方法,优选的,所述服务网格存储管理控制台所推送的业务接口的信息,包括:
[0016]服务网格的控制面利用预先定制的第一接口服务缓存,缓存管理控制台所推送的业务接口的接口数据及治理规则;
[0017]所述第一代理存储从服务网格获取的业务接口的信息,包括:
[0018]所述第一代理利用预先定制的第二接口服务缓存,缓存从服务网格获取的业务接口的接口数据及治理规则中的热点数据。
[0019]上述方法,优选的,所述服务调用方的容器中的第一代理调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息,包括:
[0020]服务调用方的容器中的第一代理监听服务网格的控制面的数据变化,当监听到控制面发生数据变化时,调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息。
[0021]上述方法,优选的,所述从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,包括:
[0022]调用预先定制的服务发现和路由模块从所述第二接口服务缓存中获取目标业务接口的接口数据;
[0023]调用预先定制的治理模块从所述第二接口服务缓存中获取所述目标业务接口的治理规则;
[0024]所述基于所述目标业务接口的信息实现服务调用方与服务提供方之间的业务调用链,包括:
[0025]利用所述发现和路由模块校验获取的目标业务接口的接口数据;
[0026]校验通过后,利用所述治理模块解析所述目标业务接口的治理规则,并针对所述目标业务接口的接口数据运行所解析的治理规则,通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链。
[0027]上述方法,优选的,所述治理规则包括:针对业务接口所配置的超时、限流、熔断及降级服务治理策略中的任意一种或多种。
[0028]上述方法,优选的,所述通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链,包括:
[0029]服务调用方的容器中的第一代理通过针对所述目标业务接口的接口数据运行所述治理规则,将服务调用方的业务级别的服务调用请求转发至服务提供方的容器中的第二代理,以使得由所述第二代理将所述服务调用请求转发至服务提供方并由服务提供方响应所述服务调用请求执行相对应的业务服务;
[0030]服务调用方的容器中的第一代理通过运行所述目标业务接口的治理规则,接收服务提供方的容器中的第二代理转发的业务服务执行结果;并将所述业务服务执行结果提供给服务调用方。
[0031]上述方法,优选的,在实现服务调用方与服务提供方之间的业务调用链时,还包括:
[0032]基于预先定制的埋点,对所述业务调用链的业务与流量链路进行监控,得到各埋点对应的监控数据,并串联各个埋点的监控数据,得到所述业务调用链的业务与流量链路的整体链路监控数据。
[0033]一种服务网格治理系统,包括:服务的管理控制台、服务网格、服务调用方、服务提供方、第一代理,所述第一代理为服务调用方的容器中的代理;其中:
[0034]所述服务的管理控制台,用于将业务接口的信息推送至所述服务网格;
[0035]所述服务网格,用于存储所述管理控制台所推送的业务接口的信息;所述服务网格中预先定制有可供发现与获取业务接口的信息的服务接口;
[0036]所述服务调用方的容器中的第一代理,用于调用所述服务接口,利用所述服务接口发现并获取所述服务网格中存储的业务接口的信息,并存储从所述服务网格获取的业务接口的信息;
[0037]其中,当所述服务调用方发起业务级别的服务调用请求时,从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,并基于所述目标业务接口的信息实现所述服务调用方与所述服务提供方之间的业务调用链。
[0038]上述系统,优选的,所述服务网格包括控制面和数据面;
[0039]所述管理控制台,具体用于:将业务接口的接口数据以及为业务接口配置的治理规则推送至服务网格的控本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务网格治理方法,其特征在于,包括:服务的管理控制台将业务接口的信息推送至服务网格;服务网格存储管理控制台所推送的业务接口的信息;服务网格中预先定制有可供发现与获取业务接口的信息的服务接口;服务调用方的容器中的第一代理调用所述服务接口,利用所述服务接口发现并获取所述服务网格中存储的业务接口的信息;所述第一代理存储从服务网格获取的业务接口的信息;当服务调用方发起业务级别的服务调用请求时,从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,并基于所述目标业务接口的信息实现服务调用方与服务提供方之间的业务调用链。2.根据权利要求1所述的方法,其特征在于,所述服务网格包括控制面和数据面;所述服务的管理控制台将业务接口的信息推送至服务网格,包括:服务的管理控制台将注册的业务接口的接口数据以及为业务接口配置的治理规则推送至服务网格的控制面。3.根据权利要求2所述的方法,其特征在于,所述服务网格存储管理控制台所推送的业务接口的信息,包括:服务网格的控制面利用预先定制的第一接口服务缓存,缓存管理控制台所推送的业务接口的接口数据及治理规则;所述第一代理存储从服务网格获取的业务接口的信息,包括:所述第一代理利用预先定制的第二接口服务缓存,缓存从服务网格获取的业务接口的接口数据及治理规则中的热点数据。4.根据权利要求3所述的方法,其特征在于,所述服务调用方的容器中的第一代理调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息,包括:服务调用方的容器中的第一代理监听服务网格的控制面的数据变化,当监听到控制面发生数据变化时,调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息。5.根据权利要求3所述的方法,其特征在于,所述从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,包括:调用预先定制的服务发现和路由模块从所述第二接口服务缓存中获取目标业务接口的接口数据;调用预先定制的治理模块从所述第二接口服务缓存中获取所述目标业务接口的治理规则;所述基于所述目标业务接口的信息实现服务调用方与服务提供方之间的业务调用链,包括:利用所述发现和路由模块校验获取的目标业务接口的接口数据;校验通过后,利用所述治理模块解析所述目标业务接口的治理规则,并针对所述目标业务接口的接口数据运行所解析的治理规则,通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链。6.根据权利要求5所述的方法,其特征在于,所述治理规则包括:针对业务接口所配置
的超时、限流、熔断及降级服务治理策略中的任意一种或多种。7.根据权利要求5所述的方法,其特征在于,所述通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链,包括:服务调用方的容器中的第一代理通过针对所述目标业务接口的接口数据运行所述治理规则,将服务调用方的业务级别的服务调用请求转发至服务提供方的容器中的第二代理,以使得由所述第二代理将所述服务调用请求转发至服务提供方并由服务提供方响应所述服务调用请求执行相对应的业务服务;服务调用方的容器中的第一代理通过运行所述目标业务接口的治理规则,接收服务提供方的容器中的第二代理转发的业务服务执行结果;并将所述业务服务执行结果提供给服务调用方。8.根据权利要求7所述的方法,其特征在于,在实现服务调用方与服务提供方之间的业务调用链时,还包括:基于预先定制的埋点,对所述业务调用链的业务与流量链路进行监控,得到各埋点对应...

【专利技术属性】
技术研发人员:王亮
申请(专利权)人:南京亚信软件有限公司
类型:发明
国别省市:

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

1