CN113055421A - 一种服务网格治理方法及系统 - Google Patents
一种服务网格治理方法及系统 Download PDFInfo
- Publication number
- CN113055421A CN113055421A CN201911379989.0A CN201911379989A CN113055421A CN 113055421 A CN113055421 A CN 113055421A CN 201911379989 A CN201911379989 A CN 201911379989A CN 113055421 A CN113055421 A CN 113055421A
- Authority
- CN
- China
- Prior art keywords
- service
- interface
- grid
- agent
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Abstract
本申请涉及一种服务网格治理方法及系统,该方法打通了管理控制台与服务网格之间的数据通道,将管理控制台上的业务接口的信息推送至服务网格,且服务网格中定制有可供发现与获取业务接口的信息的服务接口,服务调用方的容器中的代理可通过调用该服务接口从服务网格获取业务接口的信息,之后,当服务调用方发起服务调用请求时,可根据需求从该代理中获得目标业务接口的信息,进而基于目标业务接口的信息,实现服务调用方与提供方之间的业务调用链。由此可见,本申请实现了在服务网格的容器组织框架中托管业务接口的信息,相应地,可以在容器实例里运行业务接口,实现了对服务网格进行接口级别的服务治理,能够使得服务网格支持对于业务服务的托管。
Description
技术领域
本申请属于微服务架构服务治理技术领域,尤其涉及一种服务网格治理方法及系统。
背景技术
服务网格(Service Mesh),通常用于描述构成应用程序的微服务网络以及应用之间的交互。随着规模和复杂性的增长,服务网格越来越难以理解和管理,它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求,例如A/B测试、金丝雀发布、限流、访问控制和端到端认证等。
Istio是目前最广为人知的一款服务网格架构,是服务网格最常见的实现之一,Istio提供了一个完整的解决方案,通过为整个服务网格提供行为洞察和操作控制来满足微服务应用程序的多样化需求。Kubernetes是目前Istio唯一支持的容器组织框架,Istio基于Kubernetes的云原生,管理的服务是所有跑在Kubernetes云原生上面的一个个容器实例。现有的运营商核心系统的微服务并没有彻底按照微服务的原则进行拆分,更多的还是中心化的一种思路,一个个容器实例里面运行的是多个服务组成的一个应用系统,相对应地,Kubernetes的注册中心托管的微服务具体为应用实例的信息,本质上属于应用级别,无法获取到业务接口级别(Function级别)的服务信息,因此无法实现接口级别的服务治理,无法实现对于业务服务的托管,难以完全适合电信行业的核心系统对于服务治理的要求。
发明内容
有鉴于此,本申请提供了一种服务网格治理方法及系统,目的在于克服现有服务网格(如Istio)存在的上述缺陷,定制符合电信行业微服务的特点和规范的技术特点,实现接口级别的服务治理,进而使得服务网格支持对于业务服务的托管。
为此,本申请公开如下技术方案:
一种服务网格治理方法,包括:
服务的管理控制台将业务接口的信息推送至服务网格;
服务网格存储管理控制台所推送的业务接口的信息;服务网格中预先定制有可供发现与获取业务接口的信息的服务接口;
服务调用方的容器中的第一代理调用所述服务接口,利用所述服务接口发现并获取所述服务网格中存储的业务接口的信息;
所述第一代理存储从服务网格获取的业务接口的信息;
当服务调用方发起业务级别的服务调用请求时,从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,并基于所述目标业务接口的信息实现服务调用方与服务提供方之间的业务调用链。
上述方法,优选的,所述服务网格包括控制面和数据面;
所述服务的管理控制台将业务接口的信息推送至服务网格,包括:
服务的管理控制台将注册的业务接口的接口数据以及为业务接口配置的治理规则推送至服务网格的控制面。
上述方法,优选的,所述服务网格存储管理控制台所推送的业务接口的信息,包括:
服务网格的控制面利用预先定制的第一接口服务缓存,缓存管理控制台所推送的业务接口的接口数据及治理规则;
所述第一代理存储从服务网格获取的业务接口的信息,包括:
所述第一代理利用预先定制的第二接口服务缓存,缓存从服务网格获取的业务接口的接口数据及治理规则中的热点数据。
上述方法,优选的,所述服务调用方的容器中的第一代理调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息,包括:
服务调用方的容器中的第一代理监听服务网格的控制面的数据变化,当监听到控制面发生数据变化时,调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息。
上述方法,优选的,所述从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,包括:
调用预先定制的服务发现和路由模块从所述第二接口服务缓存中获取目标业务接口的接口数据;
调用预先定制的治理模块从所述第二接口服务缓存中获取所述目标业务接口的治理规则;
所述基于所述目标业务接口的信息实现服务调用方与服务提供方之间的业务调用链,包括:
利用所述发现和路由模块校验获取的目标业务接口的接口数据;
校验通过后,利用所述治理模块解析所述目标业务接口的治理规则,并针对所述目标业务接口的接口数据运行所解析的治理规则,通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链。
上述方法,优选的,所述治理规则包括:针对业务接口所配置的超时、限流、熔断及降级服务治理策略中的任意一种或多种。
上述方法,优选的,所述通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链,包括:
服务调用方的容器中的第一代理通过针对所述目标业务接口的接口数据运行所述治理规则,将服务调用方的业务级别的服务调用请求转发至服务提供方的容器中的第二代理,以使得由所述第二代理将所述服务调用请求转发至服务提供方并由服务提供方响应所述服务调用请求执行相对应的业务服务;
服务调用方的容器中的第一代理通过运行所述目标业务接口的治理规则,接收服务提供方的容器中的第二代理转发的业务服务执行结果;并将所述业务服务执行结果提供给服务调用方。
上述方法,优选的,在实现服务调用方与服务提供方之间的业务调用链时,还包括:
基于预先定制的埋点,对所述业务调用链的业务与流量链路进行监控,得到各埋点对应的监控数据,并串联各个埋点的监控数据,得到所述业务调用链的业务与流量链路的整体链路监控数据。
一种服务网格治理系统,包括:服务的管理控制台、服务网格、服务调用方、服务提供方、第一代理,所述第一代理为服务调用方的容器中的代理;其中:
所述服务的管理控制台,用于将业务接口的信息推送至所述服务网格;
所述服务网格,用于存储所述管理控制台所推送的业务接口的信息;所述服务网格中预先定制有可供发现与获取业务接口的信息的服务接口;
所述服务调用方的容器中的第一代理,用于调用所述服务接口,利用所述服务接口发现并获取所述服务网格中存储的业务接口的信息,并存储从所述服务网格获取的业务接口的信息;
其中,当所述服务调用方发起业务级别的服务调用请求时,从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,并基于所述目标业务接口的信息实现所述服务调用方与所述服务提供方之间的业务调用链。
上述系统,优选的,所述服务网格包括控制面和数据面;
所述管理控制台,具体用于:将业务接口的接口数据以及为业务接口配置的治理规则推送至服务网格的控制面。
上述系统,优选的,所述服务网格的控制面包括预先定制的第一接口服务缓存;所述第一代理包括预先定制的第二接口服务缓存;
所述服务网格,具体用于:在控制面利用预先定制的所述第一接口服务缓存,缓存所述管理控制台所推送的业务接口的接口数据及治理规则;
所述第一代理,具体用于:利用预先定制的所述第二接口服务缓存,缓存从所述服务网格获取的业务接口的接口数据及治理规则中的热点数据。
上述系统,优选的,所述第一代理,具体用于:
监听所述服务网格的控制面的数据变化,当监听到控制面发生数据变化时,调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息。
上述系统,优选的,所述第一代理还包括:预先定制的服务发现和路由模块、治理模块;
所述服务发现和路由模块,用于在所述服务调用方发起业务级别的服务调用请求时,从所述第二接口服务缓存中获取目标业务接口的接口数据,并校验所述目标业务接口的接口数据;
所述治理模块,用于在所述服务调用方发起业务级别的服务调用请求时,从所述第二接口服务缓存中获取所述目标业务接口的治理规则;并在目标业务接口的接口数据校验通过后,解析所述目标业务接口的治理规则,针对所述目标业务接口的接口数据运行所解析的治理规则,以通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链。
上述系统,优选的,所述系统还包括第二代理,所述第二代理为服务提供方的容器中的代理;
所述第一代理,还用于通过针对所述目标业务接口的接口数据运行所述治理规则,将服务调用方的业务级别的服务调用请求转发至所述第二代理;
所述第二代理,用于将所述服务调用请求转发至服务提供方,并将服务提供方为响应所述服务调用请求而执行相应业务服务时的业务服务执行结果转发给所述第一代理;
所述第一代理,还用于通过运行所述目标业务接口的治理规则,接收所述第二代理转发的业务服务执行结果,并将所述业务服务执行结果提供给服务调用方。
上述系统,优选的,所述第一代理及所述第二代理,还用于:
基于预先定制的埋点,对所述业务调用链的业务与流量链路进行监控,得到相应埋点对应的监控数据,以使得后续通过串联各个埋点的监控数据,得到所述业务调用链的业务与流量链路的整体链路监控数据。
由以上方案可知,本申请提供的服务网格治理方法及系统,打通了管理控制台与服务网格之间的数据通道,将管理控制台上注册的业务接口的信息推送至服务网格,且服务网格中定制有可供发现与获取业务接口的信息的服务接口,服务调用方的容器中的代理可通过调用该服务接口从服务网格获取业务接口的信息,之后,当服务调用方发起服务调用请求时,可根据需求从该代理中获得目标业务接口的信息,进而基于目标业务接口的信息,实现服务调用方与服务提供方之间的业务调用链。由此可见,本申请实现了在服务网格的容器组织框架中托管业务接口的信息,相应地,可以在容器实例里运行业务接口,从而实现了对服务网格进行接口级别的服务治理,能够使得服务网格支持对于业务服务的托管。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请实施例提供的服务网格治理方法的一种流程示意图;
图2是本申请实施例提供的管理控制台、服务网格的控制面与容器中的代理之间的连接框架示意图;
图3是在服务网格的架构上进行服务调用的逻辑示意图;
图4是本申请实施例提供的管理控制台、服务网格的控制面与容器中的代理之间的交互逻辑示意图;
图5是本申请实施例提供的实现服务调用方与服务提供方之间的业务调用链的处理过程流程图;
图6是本申请实施例提供的在服务调用方与服务提供方之间进行业务调用及业务监控的处理逻辑示意图;
图7是本申请实施例提供的服务网格治理方法的另一种流程示意图;
图8是本申请实施例提供的服务网格治理系统的一种结构示意图;
图9是本申请实施例提供的服务网格治理系统的另一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种服务网格治理方法及系统,通过在原生的服务网格(如Istio)上进行改造,定制了复合电信行业微服务的特点和规范的技术特点,能够实现业务接口级别的服务治理、服务监控及调用链,能够使得服务网格支持对于业务服务的托管,以下将通过具体实施例对本申请的服务网格治理方法及系统进行说明。
参阅图1,示出了本申请一可选实施例中服务网格治理方法的一种流程示意图,如图1所示,本实施例中,该服务网格治理方法包括:
步骤101、服务的管理控制台将业务接口的信息推送至服务网格。
所述业务接口的信息,可以包括但不限于业务接口的接口数据以及为业务接口配置的治理规则;更进一步地,业务接口的接口数据,示例性地,可以包括但不限于业务接口的名称、类型、接口定义数据等,为业务接口配置的治理规则,可以包括但不限于为业务接口设置的超时、限流、熔断、降级等服务治理策略。
为了克服目前的技术中服务网格(如Istio)无法实现业务接口级别的服务治理,无法实现对于业务服务的托管的缺陷,本申请提出了在服务的管理控制台中注册业务接口并为业务接口配置相应的治理规则,同时打通了该管理控制台与服务网格之间的数据通道、数据接口,一旦管理控制台中注册了数据接口、为数据接口配置了相应的治理规则,便可基于其与服务网格之间的数据通道、数据接口,将业务接口的相关信息,如业务接口的接口数据以及为其配置的治理规则等,实时动态地推送到服务网格。
实际实施中,参阅图2,可在服务的管理控制台设置服务管控、注册中心、配置中心等多个功能模块,由这些不同的功能模块分别负责业务接口的服务管控、注册、配置等任务。
服务网格,如Istio,通常提供有数据面及控制面,如图3所示,Istio的控制面包括配置中心、规则校验、安全认证等功能模块。其中,配置中心用于服务发现、流量管理、智能路由等;规则校验模块,用于istio API(Application Programming Interface,应用程序接口)配置的校验、各种配置之间统筹,为Istio提供配置管理服务,通过用Kubernetes的Webhook机制对配置中心和数据面的配置进行验证;安全认证模块,用于安全相关,服务之间的访问鉴权等。而对于数据面,则为其配置有适配器,Istio的具体结构组成及各组成部分的功能为已知技术,具体可参阅Istio的相关介绍,这里不再详述。
本申请实施例中,参阅图2与图4,具体通过定制服务网格的控制面的数据模型,打通管理控制台与服务网格的控制面之间的数据接口,利用打通的该数据接口,将业务接口的接口数据以及为业务接口配置的治理规则等相关接口信息推送到服务网格的控制面。
步骤102、服务网格存储管理控制台所推送的业务接口的信息;服务网格中预先定制有可供发现与获取业务接口的信息的服务接口。
服务网格的控制面接收管理控制台推送的业务接口的接口数据及治理规则等信息,并存储业务接口的这些信息。
作为一种实现方式,参阅图4,本申请实施例预先在服务网格的控制面定制有接口服务缓存,并利用该接口服务缓存来缓存管理控制台推送过来的业务接口的相关信息,为了将其与后续在服务调用方的代理中定制的接口服务缓存加以区分,这里将控制面中定制的接口服务缓存称为第一接口服务缓存。
本申请实施例中,定制的该第一接口服务缓存为接口配置二级缓存Function-cache-L2,该预先定制的第一接口服务缓存的数量可以为一个或多个,本实施例对此并不限定。
且进一步地,如图4所示,针对业务接口的服务治理,除了在服务网格的控制面中定制有用于缓存业务接口相关信息的所述第一接口服务缓存,还定制了服务接口适配器,该服务接口适配器具体地比如可以是CSF服务接口适配器,管理控制台在推送业务接口的相关信息时,具体将推送的业务接口的接口数据推送至该服务接口适配器,将为业务接口配置的治理规则推送至所述第一接口服务缓存,后续,服务接口适配器将其接收的业务接口的接口数据进一步输送到第一接口服务缓存,由此实现在控制面的第一接口服务缓存中缓存管理控制台所推送的业务接口的接口数据及治理规则。
另外,还在服务网格的控制面定制了可用于供上层容器组织框架中的代理发现与获取业务接口信息的服务接口,以进一步打通上层容器组织框架与服务网格控制面之间的业务接口信息传输通道。
该服务接口,例如可以是FDS(Function Discovery Sevice,业务接口发现服务)接口。
步骤103、服务调用方的容器中的第一代理调用所述服务接口,利用所述服务接口发现并获取所述服务网格中存储的业务接口的信息。
容器组织框架中的核心代理,也即服务调用方的容器中的第一代理监听服务网格的控制面的数据变化,一旦监听到控制面发生数据变化,如新增了管理控制台推送过来的业务接口等,则该第一代理调用服务网格控制面中定制的所述服务接口(如FDS接口),实时将服务网格中新增的业务接口相关信息更新到本地并存储。
其中,所述第一代理具体可以是服务调用方的POD(Kubernetes运行容器的最小单元)容器中的代理。
实施中,可以并不限定于实时更新业务接口的相关信息至该第一代理的实现方式,还可以定时或者基于条件判定在符合条件时调用所述服务接口进行业务接口相关信息的更新,并将其存储到服务调用方的容器中的该第一代理,该第一代理即为图2或图4中服务调用方对应的物理机POD容器中的代理(sidecar)。
步骤104、所述第一代理存储从服务网格获取的业务接口的信息。
服务调用方的容器中的第一代理在通过监听服务网格控制面的数据变化,获取其业务接口的业务数据及治理规则等相关信息后,存储所获取的业务接口的相关信息。
如图4所示,本申请实施例同样预先在该第一代理中定制有相应的接口服务缓存,这里将其称为第二接口服务缓存,并具体利用定制的该第二接口服务缓存,来缓存从服务网格获取的业务接口的接口数据及治理规则中的热点数据。
本申请实施例中,第一代理中定制的该第二接口服务缓存为接口配置一级缓存Function-cache-L1,该缓存的数量同样可以为一个或多个。
步骤105、当服务调用方发起业务级别的服务调用请求时,从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,并基于所述目标业务接口的信息实现服务调用方与服务提供方之间的业务调用链。
当在服务调用方的容器中的第一代理上缓存了业务接口的接口数据及治理规则的基础上,即可基于所缓存的业务接口的接口数据及治理规则,支持服务调用方与服务提供方之间的业务级别的服务调用,也即,可实现服务调用方与服务提供方之间的业务调用链,由此,本申请通过定制复合电信行业微服务的特点和规范的技术特点,实现了对服务网格进行业务接口级别的服务治理,能够支持对业务服务的托管。
由以上方案可知,本实施例的服务网格治理方法,打通了管理控制台与服务网格之间的数据通道,将管理控制台上注册的业务接口的信息推送至服务网格,且服务网格中定制有可供发现与获取业务接口的信息的服务接口,服务调用方的容器中的代理可通过调用该服务接口从服务网格获取业务接口的信息,之后,当服务调用方发起服务调用请求时,可根据需求从该代理中获得目标业务接口的信息,进而基于目标业务接口的信息,实现服务调用方与服务提供方之间的业务调用链。由此可见,本申请实现了在服务网格的容器组织框架中托管业务接口的信息,相应地,可以在容器实例里运行业务接口,从而实现了对服务网格进行接口级别的服务治理,能够使得服务网格支持对于业务服务的托管。
在本申请一可选实施例中,参阅图5,当服务调用方发起业务级别的服务调用请求时,具体可通过以下的处理过程,实现服务调用方与服务提供方之间的业务调用链:
步骤501、调用预先定制的服务发现和路由模块从所述第二接口服务缓存中获取目标业务接口的接口数据。
本申请实施例中,还在服务调用方的容器的第一代理中预先定制了接口级别的服务发现和路由模块,以及定制了接口级别和实例级别的治理模块。该服务发现和路由模块,用于在服务调用方发起业务级别的服务调用请求时,从第二接口服务缓存中获取所需的目标业务接口的接口数据(如接口定义数据等),并对获取的接口数据进行校验;该治理模块,用于在服务调用方发起业务级别的服务调用请求时,从第二接口服务缓存中获取所需的目标业务接口的治理规则,并在服务发现和路由模块对所述目标业务接口的接口数据校验通过后,解析目标业务接口的治理规则,并针对目标业务接口的接口数据运行所解析的治理规则,实现治理规则的运行态,以通过治理规则的运行态实现对业务接口的超时、限流、熔断、降级等服务治理。
从而,当服务调用方发起业务级别的服务调用请求时,可调用所述服务发现和路由模块,由该模块从所述第二接口服务缓存中获取与该服务调用请求相匹配的目标业务接口的接口数据(如接口定义数据)。
步骤502、调用预先定制的治理模块从所述第二接口服务缓存中获取所述目标业务接口的治理规则。
相对应地,可调用所述治理模块从所述第二接口服务缓存中获取所述目标业务接口的治理规则。
步骤503、利用所述发现和路由模块校验获取的目标业务接口的接口数据。
之后,可进一步利用所述发现和路由模块校验所获取的目标业务接口的接口数据,如对所获取的目标业务接口的接口定义数据进行校验等。
步骤504、校验通过后,利用所述治理模块解析所述目标业务接口的治理规则,并针对所述目标业务接口的接口数据运行所解析的治理规则,通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链。
校验通过后,服务调用方的第一代理中的治理模块解析目标业务接口的治理规则,并针对目标业务接口的接口数据运行所解析的治理规则,实现治理规则的运行态,对业务接口进行相应的超时、限流、熔断、降级等服务治理,如图6所示,通过对业务接口的治理规则的运行,将服务调用方的服务调用请求转发至服务提供方的容器(如POD容器)中的第二代理,之后该第二代理将接收的服务调用请求转发至服务提供方的真实端口上,由服务提供方响应该请求执行相应的业务服务,并进而通过第二代理的转发将业务服务执行结果转发至服务请求方容器中的第一代理,第一代理通过运行所述目标业务接口的治理规则,接收服务提供方的第二代理转发的业务服务执行结果;并将所述业务服务执行结果提供给服务调用方,从而,实现了服务调用方与服务提供方之间的业务调用链。
实际实施中,服务调用方可以通过第一代理向服务提供方发起基于http1.1或者http2的协议的业务服务调用请求。
本实施例中,预先在服务调用方容器中第一代理中定制了接口级别的服务发现和路由模块、以及定制了接口级别和实例级别的治理模块,基于这些模块实现了业务接口的治理规则的运行态,进而实现了服务调用方与服务提供方之间的业务级别的服务调用链,更加适合电信行业的核心系统对于服务治理的要求,对于电信的业务场景可行性高,有利于快速保持电信架构的先进性。
在本申请一可选实施例中,参阅图7,所述服务网格治理方法还可以包括以下处理:
步骤106、基于预先定制的埋点,对所述业务调用链的业务与流量链路进行监控,得到各埋点对应的监控数据,并串联各个埋点的监控数据,得到所述业务调用链的业务与流量链路的整体链路监控数据。
在实现服务调用方与服务提供方之间的业务调用链的基础上,本实施例进一步对服务调用方与服务提供方之间的业务调用链进行服务监控。
具体地,本实施例保留服务调用方与服务提供方的原有埋点,并进一步在服务调用方的容器中的第一代理以及服务提供方的容器中的第二代理中定制扩展了无侵入的采集埋点。
其中,原有服务网格(如istio)的服务/流量链路上不包括业务接口级别的服务/流量链路,相应地,服务调用方与服务提供方的原有埋点,无法采集所扩展的业务链路中业务接口级别的服务/流量的监控数据,本实施例中利用所定制扩展的无侵入的采集埋点采集服务调用方与服务提供方的原有埋点无法采集的业务接口级别的服务/流量的监控数据,并通过服务网格的数据面将各埋点所采集的监控数据推送到数据网关,具体如图6所示,之后进一步通过数据网关提供的标准化服务接口将监控数据发送到后端日志中心,后端日志中心将采集的各埋点监控数据进行串联,从而在原有服务网格(Istio)的服务/流量链路上扩展了业务级别服务/流量的整体链路。
本实施例通过保留服务调用方与服务提供方的原有埋点,并进一步在服务调用方容器中的第一代理以及服务提供方容器中的第二代理中定制扩展无侵入的采集埋点,实现了对服务调用方与服务提供方之间的业务调用链整体链路进行服务监控,并通过在后端日志中心串联各埋点采集的监控数据,实现在原有服务网格(Istio)的服务/流量链路上进一步扩展业务级别服务/流量的整体链路。
与上述的服务网格治理方法相对应,本申请还提供了一种服务网格治理系统,参阅图8示出的服务网格治理系统的结构示意图,该系统包括:服务的管理控制台801、服务网格802、服务调用方803、服务提供方804、第一代理805,所述第一代理805为服务调用方803的容器中的代理;其中:
所述服务的管理控制台801,用于将业务接口的信息推送至所述服务网格;
所述服务网格802,用于存储管理控制台所推送的业务接口的信息;所述服务网格中预先定制有可供发现与获取业务接口的信息的服务接口;
所述服务调用方803的容器中的第一代理805,用于调用所述服务接口,利用所述服务接口发现并获取所述服务网格802中存储的业务接口的信息,并存储从所述服务网格802获取的业务接口的信息;
其中,当所述服务调用方803发起业务级别的服务调用请求时,从所述第一代理805存储的各业务接口的信息中获取所需的目标业务接口的信息,并基于所述目标业务接口的信息实现所述服务调用方803与所述服务提供方804之间的业务调用链。
在本申请实施例的一可选实施方式中,所述服务网格802包括控制面和数据面;
所述管理控制台801,具体用于:将业务接口的接口数据以及为业务接口配置的治理规则推送至服务网格802的控制面。
在本申请实施例的一可选实施方式中,所述服务网格的控制面包括预先定制的第一接口服务缓存;所述第一代理包括预先定制的第二接口服务缓存;
所述服务网格802,具体用于:在控制面利用预先定制的所述第一接口服务缓存,缓存管理控制台801所推送的业务接口的接口数据及治理规则;
所述第一代理805,具体用于:利用预先定制的所述第二接口服务缓存,缓存从服务网格802获取的业务接口的接口数据及治理规则中的热点数据。
在本申请实施例的一可选实施方式中,所述第一代理805,具体用于:
监听所述服务网格的控制面的数据变化,当监听到控制面发生数据变化时,调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息。
在本申请实施例的一可选实施方式中,所述第一代理805还包括:预先定制的服务发现和路由模块、治理模块;
所述服务发现和路由模块,用于在所述服务调用方803发起业务级别的服务调用请求时,从所述第二接口服务缓存中获取目标业务接口的接口数据,并校验所述目标业务接口的接口数据;
所述治理模块,用于在所述服务调用方803发起业务级别的服务调用请求时,从所述第二接口服务缓存中获取所述目标业务接口的治理规则;并在目标业务接口的接口数据校验通过后,解析所述目标业务接口的治理规则,针对所述目标业务接口的接口数据运行所解析的治理规则,以通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方803与服务提供方804之间的业务调用链。
在本申请实施例的一可选实施方式中,如图9所示,该系统还包括第二代理806,所述第二代理806为服务提供方804的容器中的代理;
所述第一代理805,还用于通过针对所述目标业务接口的接口数据运行所述治理规则,将服务调用方803的业务级别的服务调用请求转发至所述第二代理806;
所述第二代理806,用于将所述服务调用请求转发至服务提供方804,并将服务提供方804为响应所述服务调用请求而执行相应业务服务时的业务服务执行结果转发给所述第一代理805;
所述第一代理805,还用于通过运行所述目标业务接口的治理规则,接收所述第二代理806转发的业务服务执行结果,并将所述业务服务执行结果提供给服务调用方804。
在本申请实施例的一可选实施方式中,所述第一代理805及所述第二代理806,还用于:基于预先定制的埋点,对所述业务调用链的业务与流量链路进行监控,得到相应埋点对应的监控数据,以使得后续通过串联各个埋点的监控数据,得到所述业务调用链的业务与流量链路的整体链路监控数据。
对于本申请实施例公开的服务网格治理系统而言,由于其与以上各实施例公开的服务网格治理方法相对应,所以描述的比较简单,相关相似之处请参见以上各实施例中服务网格治理方法部分的说明即可,此处不再详述。
综上所述,本申请的服务网格治理方法与系统,相比于传统技术,具备以下技术优势:
1)实现了基于业务接口级别的规则配置,接口发现,接口路由,接口熔断,接口限流的通用模型;
2)凡是具备业务接口特征的接口服务都可以复用或者混用本申请的服务网格治理功能,例如:AIF-CSF服务编码,Springboot Mapping-url以及其它Restful API等;
3)从XDS标准扩展了FDS来实现业务接口的两级缓存和动态推送。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (15)
1.一种服务网格治理方法,其特征在于,包括:
服务的管理控制台将业务接口的信息推送至服务网格;
服务网格存储管理控制台所推送的业务接口的信息;服务网格中预先定制有可供发现与获取业务接口的信息的服务接口;
服务调用方的容器中的第一代理调用所述服务接口,利用所述服务接口发现并获取所述服务网格中存储的业务接口的信息;
所述第一代理存储从服务网格获取的业务接口的信息;
当服务调用方发起业务级别的服务调用请求时,从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,并基于所述目标业务接口的信息实现服务调用方与服务提供方之间的业务调用链。
2.根据权利要求1所述的方法,其特征在于,所述服务网格包括控制面和数据面;
所述服务的管理控制台将业务接口的信息推送至服务网格,包括:
服务的管理控制台将注册的业务接口的接口数据以及为业务接口配置的治理规则推送至服务网格的控制面。
3.根据权利要求2所述的方法,其特征在于,所述服务网格存储管理控制台所推送的业务接口的信息,包括:
服务网格的控制面利用预先定制的第一接口服务缓存,缓存管理控制台所推送的业务接口的接口数据及治理规则;
所述第一代理存储从服务网格获取的业务接口的信息,包括:
所述第一代理利用预先定制的第二接口服务缓存,缓存从服务网格获取的业务接口的接口数据及治理规则中的热点数据。
4.根据权利要求3所述的方法,其特征在于,所述服务调用方的容器中的第一代理调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息,包括:
服务调用方的容器中的第一代理监听服务网格的控制面的数据变化,当监听到控制面发生数据变化时,调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息。
5.根据权利要求3所述的方法,其特征在于,所述从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,包括:
调用预先定制的服务发现和路由模块从所述第二接口服务缓存中获取目标业务接口的接口数据;
调用预先定制的治理模块从所述第二接口服务缓存中获取所述目标业务接口的治理规则;
所述基于所述目标业务接口的信息实现服务调用方与服务提供方之间的业务调用链,包括:
利用所述发现和路由模块校验获取的目标业务接口的接口数据;
校验通过后,利用所述治理模块解析所述目标业务接口的治理规则,并针对所述目标业务接口的接口数据运行所解析的治理规则,通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链。
6.根据权利要求5所述的方法,其特征在于,所述治理规则包括:针对业务接口所配置的超时、限流、熔断及降级服务治理策略中的任意一种或多种。
7.根据权利要求5所述的方法,其特征在于,所述通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链,包括:
服务调用方的容器中的第一代理通过针对所述目标业务接口的接口数据运行所述治理规则,将服务调用方的业务级别的服务调用请求转发至服务提供方的容器中的第二代理,以使得由所述第二代理将所述服务调用请求转发至服务提供方并由服务提供方响应所述服务调用请求执行相对应的业务服务;
服务调用方的容器中的第一代理通过运行所述目标业务接口的治理规则,接收服务提供方的容器中的第二代理转发的业务服务执行结果;并将所述业务服务执行结果提供给服务调用方。
8.根据权利要求7所述的方法,其特征在于,在实现服务调用方与服务提供方之间的业务调用链时,还包括:
基于预先定制的埋点,对所述业务调用链的业务与流量链路进行监控,得到各埋点对应的监控数据,并串联各个埋点的监控数据,得到所述业务调用链的业务与流量链路的整体链路监控数据。
9.一种服务网格治理系统,其特征在于,包括:服务的管理控制台、服务网格、服务调用方、服务提供方、第一代理,所述第一代理为服务调用方的容器中的代理;其中:
所述服务的管理控制台,用于将业务接口的信息推送至所述服务网格;
所述服务网格,用于存储所述管理控制台所推送的业务接口的信息;所述服务网格中预先定制有可供发现与获取业务接口的信息的服务接口;
所述服务调用方的容器中的第一代理,用于调用所述服务接口,利用所述服务接口发现并获取所述服务网格中存储的业务接口的信息,并存储从所述服务网格获取的业务接口的信息;
其中,当所述服务调用方发起业务级别的服务调用请求时,从所述第一代理存储的各业务接口的信息中获取所需的目标业务接口的信息,并基于所述目标业务接口的信息实现所述服务调用方与所述服务提供方之间的业务调用链。
10.根据权利要求9所述的系统,其特征在于,所述服务网格包括控制面和数据面;
所述管理控制台,具体用于:将业务接口的接口数据以及为业务接口配置的治理规则推送至服务网格的控制面。
11.根据权利要求10所述的系统,所述服务网格的控制面包括预先定制的第一接口服务缓存;所述第一代理包括预先定制的第二接口服务缓存;
所述服务网格,具体用于:在控制面利用预先定制的所述第一接口服务缓存,缓存所述管理控制台所推送的业务接口的接口数据及治理规则;
所述第一代理,具体用于:利用预先定制的所述第二接口服务缓存,缓存从所述服务网格获取的业务接口的接口数据及治理规则中的热点数据。
12.根据权利要求11所述的系统,其特征在于,所述第一代理,具体用于:
监听所述服务网格的控制面的数据变化,当监听到控制面发生数据变化时,调用所述服务接口,利用所述服务接口获取所述服务网格中存储的业务接口的信息。
13.根据权利要求11所述的系统,所述第一代理还包括:预先定制的服务发现和路由模块、治理模块;
所述服务发现和路由模块,用于在所述服务调用方发起业务级别的服务调用请求时,从所述第二接口服务缓存中获取目标业务接口的接口数据,并校验所述目标业务接口的接口数据;
所述治理模块,用于在所述服务调用方发起业务级别的服务调用请求时,从所述第二接口服务缓存中获取所述目标业务接口的治理规则;并在目标业务接口的接口数据校验通过后,解析所述目标业务接口的治理规则,针对所述目标业务接口的接口数据运行所解析的治理规则,以通过针对所述目标业务接口的接口数据运行所解析的治理规则,实现服务调用方与服务提供方之间的业务调用链。
14.根据权利要求13所述的系统,其特征在于,所述系统还包括第二代理,所述第二代理为服务提供方的容器中的代理;
所述第一代理,还用于通过针对所述目标业务接口的接口数据运行所述治理规则,将服务调用方的业务级别的服务调用请求转发至所述第二代理;
所述第二代理,用于将所述服务调用请求转发至服务提供方,并将服务提供方为响应所述服务调用请求而执行相应业务服务时的业务服务执行结果转发给所述第一代理;
所述第一代理,还用于通过运行所述目标业务接口的治理规则,接收所述第二代理转发的业务服务执行结果,并将所述业务服务执行结果提供给服务调用方。
15.根据权利要求13所述的系统,其特征在于:
所述第一代理及所述第二代理,还用于:
基于预先定制的埋点,对所述业务调用链的业务与流量链路进行监控,得到相应埋点对应的监控数据,以使得后续通过串联各个埋点的监控数据,得到所述业务调用链的业务与流量链路的整体链路监控数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911379989.0A CN113055421B (zh) | 2019-12-27 | 2019-12-27 | 一种服务网格治理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911379989.0A CN113055421B (zh) | 2019-12-27 | 2019-12-27 | 一种服务网格治理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113055421A true CN113055421A (zh) | 2021-06-29 |
CN113055421B CN113055421B (zh) | 2022-06-21 |
Family
ID=76506617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911379989.0A Active CN113055421B (zh) | 2019-12-27 | 2019-12-27 | 一种服务网格治理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113055421B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615320A (zh) * | 2022-03-11 | 2022-06-10 | 亚信科技(南京)有限公司 | 服务治理方法、装置、电子设备及计算机可读存储介质 |
CN114637549A (zh) * | 2022-02-22 | 2022-06-17 | 阿里巴巴(中国)有限公司 | 基于服务网格的应用的数据处理方法、系统和存储介质 |
CN114726863A (zh) * | 2022-04-27 | 2022-07-08 | 阿里云计算有限公司 | 用于负载均衡的方法、设备、系统及存储介质 |
CN114844941A (zh) * | 2022-04-27 | 2022-08-02 | 南京亚信软件有限公司 | 基于Istio的接口级别服务治理方法及相关装置 |
CN115065720A (zh) * | 2022-06-15 | 2022-09-16 | 中电云数智科技有限公司 | 一种自动适配多个外部注册中心到服务网格Istio的方法和装置 |
WO2024061189A1 (zh) * | 2022-09-19 | 2024-03-28 | 华为云计算技术有限公司 | 一种服务网格系统以及基于服务网格系统的信息传输方法 |
WO2024066503A1 (zh) * | 2022-09-27 | 2024-04-04 | 华为云计算技术有限公司 | 服务调用方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357233A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 一种远程调用方法与设备 |
US20180262391A1 (en) * | 2015-03-17 | 2018-09-13 | Pulzze Systems, Inc | System and method for developing run time self-modifying interaction solution through configuration |
CN108733406A (zh) * | 2018-05-22 | 2018-11-02 | 山大地纬软件股份有限公司 | 一种支持服务升级版本兼容的微服务开发管理系统及方法 |
CN109981789A (zh) * | 2019-04-03 | 2019-07-05 | 山东浪潮云信息技术有限公司 | 一种基于代理模式的微服务引擎 |
CN110134528A (zh) * | 2019-04-15 | 2019-08-16 | 平安普惠企业管理有限公司 | 微服务框架的接口信息存储调用方法、装置和终端设备 |
CN110554856A (zh) * | 2019-09-06 | 2019-12-10 | 航天科工广信智能技术有限公司 | 一种微服务治理系统 |
-
2019
- 2019-12-27 CN CN201911379989.0A patent/CN113055421B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357233A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 一种远程调用方法与设备 |
US20180262391A1 (en) * | 2015-03-17 | 2018-09-13 | Pulzze Systems, Inc | System and method for developing run time self-modifying interaction solution through configuration |
CN108733406A (zh) * | 2018-05-22 | 2018-11-02 | 山大地纬软件股份有限公司 | 一种支持服务升级版本兼容的微服务开发管理系统及方法 |
CN109981789A (zh) * | 2019-04-03 | 2019-07-05 | 山东浪潮云信息技术有限公司 | 一种基于代理模式的微服务引擎 |
CN110134528A (zh) * | 2019-04-15 | 2019-08-16 | 平安普惠企业管理有限公司 | 微服务框架的接口信息存储调用方法、装置和终端设备 |
CN110554856A (zh) * | 2019-09-06 | 2019-12-10 | 航天科工广信智能技术有限公司 | 一种微服务治理系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114637549A (zh) * | 2022-02-22 | 2022-06-17 | 阿里巴巴(中国)有限公司 | 基于服务网格的应用的数据处理方法、系统和存储介质 |
CN114615320A (zh) * | 2022-03-11 | 2022-06-10 | 亚信科技(南京)有限公司 | 服务治理方法、装置、电子设备及计算机可读存储介质 |
CN114615320B (zh) * | 2022-03-11 | 2023-12-19 | 亚信科技(南京)有限公司 | 服务治理方法、装置、电子设备及计算机可读存储介质 |
CN114726863A (zh) * | 2022-04-27 | 2022-07-08 | 阿里云计算有限公司 | 用于负载均衡的方法、设备、系统及存储介质 |
CN114844941A (zh) * | 2022-04-27 | 2022-08-02 | 南京亚信软件有限公司 | 基于Istio的接口级别服务治理方法及相关装置 |
CN114726863B (zh) * | 2022-04-27 | 2024-01-09 | 阿里云计算有限公司 | 用于负载均衡的方法、设备、系统及存储介质 |
CN115065720A (zh) * | 2022-06-15 | 2022-09-16 | 中电云数智科技有限公司 | 一种自动适配多个外部注册中心到服务网格Istio的方法和装置 |
CN115065720B (zh) * | 2022-06-15 | 2024-02-13 | 中电云计算技术有限公司 | 一种自动适配多个外部注册中心到服务网格Istio的方法和装置 |
WO2024061189A1 (zh) * | 2022-09-19 | 2024-03-28 | 华为云计算技术有限公司 | 一种服务网格系统以及基于服务网格系统的信息传输方法 |
WO2024066503A1 (zh) * | 2022-09-27 | 2024-04-04 | 华为云计算技术有限公司 | 服务调用方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113055421B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113055421B (zh) | 一种服务网格治理方法及系统 | |
CN111052711B (zh) | 发现由网络存储库功能提供的服务的方法 | |
US8139509B2 (en) | Installation and management of mobile device [{S]} configuration | |
US8713177B2 (en) | Remote management of networked systems using secure modular platform | |
US20200162345A1 (en) | Method, system and options for multi-operator service life cycle management | |
US8918876B2 (en) | Deviating behaviour of a user terminal | |
US11394618B2 (en) | Systems and methods for validation of virtualized network functions | |
US20170070582A1 (en) | Network entity discovery and service stitching | |
CN103546343B (zh) | 网络流量分析系统的网络流量展示方法和系统 | |
US9141509B2 (en) | Mobile device remote control session activity pattern recognition | |
CN111861140A (zh) | 一种业务处理方法、装置、存储介质和电子装置 | |
EP2863582B1 (en) | Scheduling a device batch reconfiguration event in a network | |
CN113794636B (zh) | 一种基于Spring Cloud Gateway实现的动态路由编排方法及系统 | |
US20100218202A1 (en) | Method and Apparatus for Case-Based Service Composition | |
CN109669785A (zh) | 终端应用的页面分享方法、装置、服务器及存储介质 | |
EP2993825A2 (en) | Network entity discovery and service stitching | |
CN113556359A (zh) | 一种通讯协议转换方法、设备、系统及网关设备 | |
CN114697232A (zh) | Skywalking探针的指标数据采集系统、方法及电子设备 | |
JP2006025434A (ja) | 大容量障害相関システム及び方法 | |
EP3382943B1 (en) | Method and system for managing a service provider infrastructure | |
CN113778709B (zh) | 接口调用方法、装置、服务器及存储介质 | |
WO2022197604A1 (en) | Methods, systems, and computer readable media for autonomous network test case generation | |
US11425172B2 (en) | Application security for service provider networks | |
US11582345B2 (en) | Context data management interface for contact center | |
US8526940B1 (en) | Centralized rules repository for smart phone customer care |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |