CN113542437B - 网络系统、网络代理方法及设备 - Google Patents
网络系统、网络代理方法及设备 Download PDFInfo
- Publication number
- CN113542437B CN113542437B CN202111084346.0A CN202111084346A CN113542437B CN 113542437 B CN113542437 B CN 113542437B CN 202111084346 A CN202111084346 A CN 202111084346A CN 113542437 B CN113542437 B CN 113542437B
- Authority
- CN
- China
- Prior art keywords
- grid
- service
- micro
- target
- node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013507 mapping Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 17
- 238000012856 packing Methods 0.000 claims description 9
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
-
- 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
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种网络系统、网络代理方法及设备。该网络系统中基于非服务网格架构实现且需要与网格计算节点通信的非网格计算节点上,部署有非网格微服务及其代理程序,代理程序用于与服务网格架构中的控制平面交互,以得到针对非网格微服务的路由规则,在非网格微服务需要调用目标网格微服务时,根据路由规则确定需要将非网格微服务的当前流量路由到部署目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在目标网格计算节点上的目标网格微服务,实现由与非网格微服务部署在同一计算节点上的代理程序,提供非网格微服务与网格微服务的互通。本申请能够降低非服务网格架构中的微服务与服务网格架构中的微服务之间互通的资源成本。
Description
技术领域
本申请涉及微服务技术领域,尤其涉及一种网络系统、网络代理方法及设备。
背景技术
微服务是一种软件开发技术-面向服务的体系结构架构样式的一种变体,将应用程序构造为一组松散耦合的微服务。Spring Cloud是一种十分流行的微服务架构。
在异构微服务场景下,随着另一种微服务架构服务网格(Service Mesh)的普及,原先Spring Cloud架构中的微服务如何与Service Mesh架构中的微服务进行互通成了困扰开发者的问题。目前一种实现互通的方式为:在Spring Cloud架构中微服务的节点中增加Sidecar容器,Sidecar容器里面运行Envoy的代码,Spring Cloud架构中的微服务可以通过Sidecar容器中运行的Envoy的代码,实现与Service Mesh架构中微服务之间的互通。然而,这种方式存在资源成本较高的问题。
发明内容
本申请实施例提供一种网络系统、网络代理方法及设备,用以解决现有技术中实现Spring Cloud架构中的微服务与Service Mesh架构中的微服务之间互通的资源成本较高的问题。
第一方面,本申请实施例提供一种网络系统,包括:基于服务网格架构实现的控制平面节点以及多个网格计算节点,所述网格计算节点上部署有网格微服务;所述网络系统还包括基于非服务网格架构实现且需要与所述网格计算节点通信的非网格计算节点,所述非网格计算节点上部署有非网格微服务及其代理程序;
所述控制平面节点,用于获取针对所述非网格微服务的路由规则,按照所述服务网格架构支持的特定协议数据格式对所述路由规则进行打包,并将打包获得的第一数据包发送至所述代理程序;
所述代理程序用于接收所述第一数据包并解析所述第一数据包,得到所述路由规则;
所述代理程序还用于在所述非网格微服务需要调用目标网格微服务时,基于所述路由规则确定需要将所述非网格微服务的当前流量路由到部署所述目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在所述目标网格计算节点上的所述目标网格微服务。
第二方面,本申请实施例提供一种网络代理方法,包括:
接收控制平面节点发送的第一数据包,所述第一数据包是所述控制面节点按照服务网格架构支持的特定协议数据格式,对针对所述非网格微服务的路由规则进行打包得到;
解析所述第一数据包,得到所述路由规则;
在所述非网格微服务需要调用目标网格微服务时,基于所述路由规则确定需要将所述非网格微服务的当前流量路由到部署所述目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在所述目标网格计算节点上的所述目标网格微服务。
第三方面,本申请实施例提供一种网络代理装置,包括:
接收模块,用于接收控制平面节点发送的第一数据包,所述第一数据包是所述控制面节点按照服务网格架构支持的特定协议数据格式,对针对所述非网格微服务的路由规则进行打包得到;
解析模块,用于解析所述第一数据包,得到所述路由规则;
流量路由模块,用于在所述非网格微服务需要调用目标网格微服务时,基于所述路由规则确定需要将所述非网格微服务的当前流量路由到部署所述目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在所述目标网格计算节点上的所述目标网格微服务。
第四方面,本申请实施例提供一种计算机设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行时实现如第二方面任一项所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序指令,当所述指令由处理器执行时,实现如第二方面任一项所述的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如第二方面任一项所述的方法。
在本申请实施例中,网格系统包括基于非服务网格架构实现且需要与网格计算节点通信的非网格计算节点,且非网格计算节点上部署有非网格微服务及其代理程序,代理程序用于与服务网格架构中的控制平面交互,以得到针对非网格微服务的路由规则,在非网格微服务需要调用目标网格微服务时,根据路由规则确定需要将非网格微服务的当前流量路由到部署目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在目标网格计算节点上的目标网格微服务,实现由与非网格微服务部署在同一计算节点上的代理程序,提供非网格微服务与网格微服务的互通,由于代理程序与非网格微服务运行在同一进程中,因此代理程序可以共用为非网格微服务的进程分配的资源,无需专门分配用于实现与网格微服务之间互通的资源,从而能够降低非服务网格架构中的微服务与服务网格架构中的微服务之间互通的资源成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的网络系统的结构示意图;
图2为本申请一实施例提供的代理程序的处理流程框图;
图3为本申请另一实施例提供的网络系统的结构示意图;
图4为本申请一实施例提供的网络代理方法的流程示意图;
图5为本申请一实施例提供的网络代理装置的结构示意图;
图6为本申请一实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
相关技术中比较常用的实现Spring Cloud架构中的微服务与Service Mesh架构中的微服务进行互通的方法,主要包括在Spring Cloud架构中微服务的节点中增加Sidecar容器,Sidecar容器里面运行Envoy的代码,Spring Cloud架构中的微服务可以通过Sidecar容器中运行的Envoy的代码,实现与Service Mesh架构中微服务之间的互通。然而,由于容器本质上是进程,而在创建进程时需要为进程分配资源,在撤销进程时才能回收资源,因此在Spring Cloud架构中微服务的节点中增加Sidecar容器的方式,节点需要专门分配用于实现与Service Mesh架构中的微服务之间互通的资源,资源成本较高,因此相关技术中如何降低Spring Cloud架构中的微服务与Service Mesh架构中的微服务之间互通的资源成本,成为目前亟待解决的问题。
基于类似于上文所述的实际技术需求,本申请提供的网络系统可以利用技术化的手段降低非Service Mesh架构中的微服务与Service Mesh架构中的微服务之间互通的资源成本。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突情况下,下述的实施例及实施例中的特征可以相互组合。
图1为本申请一实施例提供的网络系统的结构示意图,如图1所示,本实施例提供的网络系统可以包括:基于服务网格架构实现的控制平面节点11以及多个网格计算节点12,网格计算节点12上部署有网格微服务;网络系统还包括基于非服务网格架构实现且需要与网格计算节点12通信的非网格计算节点13,非网格计算节点13上部署有非网格微服务及其代理程序。
其中,网格计算节点12是指基于服务网格架构实现的计算节点。网格计算节点12的数量可以为多个,多个网格计算节点12上部署的微服务可以不同。由于部署在网格计算节点12上的微服务对应的微服务架构是服务网格架构,因此部署在网格计算节点12上的微服务可以记为网格微服务。
应理解,网格计算节点12上还可以部署有网格微服务对应的Sidecar容器,以服务网格架构为Istio架构为例,Sidecar容器中可以运行Envoy的代码。不同网格计算节点12上部署的Sidecar容器之间形成一张形式网格的交互链路,这就是服务网格名称的来由。需要说明的是,关于服务网格架构中的Sidecar容器的实现方式,可以参见相关技术中的具体描述,在此不再赘述。
非网格计算节点13是指基于非服务网格架构实现且需要与网格计算节点通信的计算节点。非服务网格架构具体可以是服务网格架构之外,且其中的微服务需要与服务网格架构中的微服务互通的任意类型的微服务架构,示例性的,非服务网格架构可以包括Spring Cloud架构。非网格计算节点13的数量可以为一个或多个,多个非网格计算节点13上部署的微服务可以相同也可以不同。由于部署在非网格计算节点13上的微服务对应的微服务架构是非服务网格架构,因此部署在非网格计算节点13上的微服务可以记为非网格微服务。
本申请实施例中,非网格计算节点13上除了部署非网格微服务,还部署有非网格微服务的代理程序。应理解,一非网格微服务的代理程序与该非网格微服务运行在同一进程中。代理程序的编程语言可以与非服务网格架构使用的编程语言相同,以非服务网格架构使用Java语言为例,代理程序具体可以是Java Agent。
需要说明的是,服务网格架构中有两个关键的概念:控制平面和数据平面。其中,前面所说的Sidecar就是数据平面,而控制平面是服务网格架构的中心控制组件,用于部署中心控制组件的节点即为控制平面节点11。
本申请实施例中,控制平面节点11能够向非网格计算节点13提供中心控制的功能。如图1所示,控制平面节点11可以用于获取针对非网格微服务的路由规则,按照服务网格架构支持的特定协议数据格式对针对非网格微服务的路由规则进行打包,并将打包获得的第一数据包发送至代理程序。应理解,控制平面节点11向一代理程序发送的第一数据包中,携带的是针对与该代理程序部署在同一非网格计算节点上的非网格微服务的路由规则。
其中,以服务网格架构为Istio架构为例,特定协议数据格式例如可以为XDS协议的数据格式。控制平面节点11例如可以根据用户设置的路由策略,生成针对非网格微服务的路由规则,其中,控制平面节点11例如可以从微服务控制台获得用户设置的路由策略,微服务控制台例如可以为微服务引擎(MicroService Engine,简称MSE),MSE可以提供供用户进行路由设置的操作员服务系统(Operator Service System,简称OPS),关于微服务控制台的实现方式,可以参见相关技术中的具体描述,在此不再赘述。
应理解,作为服务网格架构的控制中心,控制平面节点11还可以向网格计算节点提供中心控制的功能。例如,控制平面节点11还可以获取针对网格微服务的路由规则,按照服务网格架构支持的特定协议数据格式对针对网格微服务的路由规则进行打包,并将打包获得的数据包发送至网格计算节点。关于控制平面节点向网格计算节点提供控制功能的实现方式,可以参见相关技术中的具体描述,在此不再赘述。
本申请实施例中,是通过非网格微服务的代理程序实现非网格微服务和网格微服务之间的互通。如图1所示,代理程序可以用于接收控制平面节点发送的第一数据包,解析第一数据包得到针对非网格微服务的路由规则。应理解,一代理程序解析得到的路由规则,是针对与该代理程序部署在同一非网格计算节点上的非网格微服务的路由规则。
如图1所示,代理程序还可以用于在非网格微服务需要调用目标网格微服务时,基于路由规则确定需要将非网格微服务的当前流量路由到部署目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在目标网格计算节点上的目标网格微服务。
其中,针对一非网格微服务的路由规则,描述了该非网格微服务在调用一网格微服务时,符合何种条件的流量应该被路由至部署该网格微服务的符合何种条件的节点。基于此,在一非网格微服务需要调用一网格微服务(即目标网格微服务)时,该网格微服务的代理程序可以确定该非网格微服务的当前流量是符合何种条件的流量,并根据路由规则可以进一步确定需要将该非网格微服务的符合这种条件的当前流量,路由到部署该网格微服务的符合特定条件的目标网格计算节点。
当部署目标网格微服务的符合特定条件的网格计算节点的数量为一个时,该网格计算节点即为目标网格计算节点,当部署目标网格微服务的符合特定条件的网格计算节点的数量为多个时,可以选择该多个网格计算节点中的一个作为目标网格计算节点。
本申请实施例中,可以采用负载均衡策略,从部署目标网格微服务的符合特定条件的多个网格计算节点中选择一个网格计算节点作为目标网格计算节点,从而避免出现部署同一网格微服务的多个网格计算节点中部分节点的负载过高导致处理速度慢,而部分节点的负载过低导致资源利用率低的问题。
基于此,一个实施例中,代理程序还可以用于采用负载均衡策略,从部署目标网格微服务的符合特定条件的多个网格计算节点中选择一个网格计算节点作为目标网格计算节点。由于微服务的代码通常由用户编写,而代理程序的代码可以由用户使用的平台提供,因此通过由代理程序采用负载均衡策略确定目标网格计算节点,能够使得用户无需为了实现网格计算节点的负载均衡对非网格微服务的代码进行修改,有利于提高用户使用体验。
本申请实施例中,可以根据目标网格计算节点的地址调用部署在目标网格计算节点上的目标网格微服务。基于此,一个实施例中,控制平面节点11还可以用于获取服务网格架构中网格微服务与部署网格微服务的网格计算节点的地址的映射关系,按照服务网格架构支持的特定协议对映射关系进行打包,并将打包获得的第二数据包发送至代理程序。以服务网格架构为Istio架构为例,特定协议数据格式例如可以为XDS协议的数据格式。
在此基础上,一个实施例中,在由代理程序确定目标网格计算节点的地址时,代理程序还可以用于接收控制平面节点11发送的第二数据包并解析第二数据包,得到服务网格架构中网格微服务与部署网格微服务的网格计算节点的地址之间的映射关系,并根据映射关系确定部署目标网格微服务的目标网格计算节点的地址。相应的,代理程序用于调用部署在目标网格计算节点上的目标网格微服务具体可以包括:根据目标网格计算节点的地址调用部署在目标网格计算节点上的目标网格微服务。由于微服务的代码通常由用户编写,而代理程序的代码可以由用户使用的平台提供,因此通过由代理程序确定目标网格计算节点的地址,能够使得用户无需为了确定目标网格计算节点的地址对非网格微服务的代码进行修改,有利于提高用户使用体验。
其中,服务网格架构中网格微服务与部署网格微服务的网格计算节点的地址之间的映射关系,可以由控制平面节点11生成。例如,部署在网格计算节点上的Sidecar容器可以向控制平面节点11注册与其部署在同一网格计算节点上的网格微服务,从而使得控制平面节点可以生成网格微服务与部署网格微服务的网格计算节点之间的映射关系。
本申请实施例中,在代理程序接收控制平面节点打包并发送的数据包之前,还可以向控制平面节点11注册非网格微服务,以便控制平面节点11可以获知非网格微服务的存在。基于此,一个实施例中,代理程序还可以用于在接收第一数据包之前,向控制平面节点11注册非网格微服务。应理解,一代理程序向控制平面节点注册的非网格微服务,是与该代理程序部署在同一非网格计算节点上的非网格微服务。由于微服务的代码通常由用户编写,而代理程序的代码可以由用户使用的平台提供,因此通过由代理程序向控制平面节点注册非网格微服务,能够使得用户无需为了向注册非网格微服务对非网格微服务的代码进行修改,有利于提高用户使用体验。
本申请实施例中,在代理程序向控制平面节点注册非网格微服务之前,还可以由控制平面节点11对请求注册非网格微服务的代理程序进行身份认证,从而有利于提高安全性。基于此,一个实施例中,代理程序还可以用于在向控制平面节点11注册非网格微服务之前,从微服务控制台获得与控制平面节点11进行通信所需的认证参数,并将认证参数发送给控制平面节点11,以便控制平面节点11对代理程序进行身份认证。例如,微服务控制台可以通过控制平面节点提供的OpenApi获取与控制平面节点通信所需的认证参数,并将参数下发至代理程序中。
本申请实施例中,网络系统还可以包括基于服务网格架构实现的网关节点。网关节点可以用于在获取到针对非网格微服务的调用请求时,按照调用请求调用非网格微服务。通过网络系统中还包括网关节点,实现了能够经由统一入口对网络系统中的非网格微服务和网格微服务进行调用,有利于简化实现。
本申请实施例中,网络系统还可以包括基于非服务网格架构实现但不需要与网格计算节点12通信的其他计算节点,其他计算节点上部署的微服务与非网格计算节点上部署的微服务可以相同也可以不同。由于部署在其他计算节点上的微服务对应的微服务架构也是非服务网格架构,因此部署在其他计算节点上的微服务可以记为非网格微服务。关于其他计算节点的实现方式,可以参见相关技术中的具体描述,在此不再赘述。
在此情况下,可以实现非网格计算节点上部署的非网格微服务与其他计算节点上部署的非网格微服务以及网格计算节点上部署的网格微服务均互通。一个实施例中,还可以由代理程序实现与其他计算节点上部署的微服务进行互通的功能。
参考图2,代理程序中的地址模块21,一方面可以从服务网格架构中的控制平面节点11获得网格微服务与部署网格微服务的网格计算节点的映射关系(即第一映射关系),所采用的特定协议例如可以为XDS,另一方面可以从非服务网格架构中的注册配置中心X(例如Nacos)获得非网格微服务与部署非网格微服务的计算节点的映射关系(即第二映射关系),地址模块21还可以对第一映射关系和第二映射关系进行合并(merge),得到合并后映射关系。代理程序中的路由模块22可以从控制平面节点11获得针对网格微服务的路由规则,所采用的特定协议例如可以为XDS,并在与其部署在同一计算节点的非网格微服务需要调用目标微服务时,根据合并后映射关系以及路由规则确定需要将非网格微服务的当前流量路由到部署目标微服务的符合特定条件的多个计算节点以及多个计算节点分别的地址(例如IP地址)。代理程序中的负载均衡模块23可以从路由模块22确定的多个计算节点的地址中选择一个计算节点作为目标计算节点的地址。应理解,在非网格微服务需要将流量路由到网格服务架构中的网格微服务时,目标微服务具体可以是目标网格微服务,在非网格微服务需要将流量路由到非网格服务架构中的非网格微服务时,目标微服务具体可以是目标非网格微服务。
以服务网格架构为阿里云服务网格(AlibabacloudServiceMesh,简称AMS)架构,非服务网格架构为Spring Cloud架构,且AMS运行在阿里云k8s(AlibabacloudKubernetes,简称ACK)上为例,网络系统的结构例如可以如图3所示。
图3中,MSE OPS可以获取用户设置的路由策略,并将获取到的路由策略传递给AMS架构。在AMS架构中的控制平面,istiod组件可以根据虚拟服务(virtual service)、执行规则(destination rule)、网关(Gateway)或服务条目(ServiceEntry)四种流量控制类型中的一种,以及路由策略生成针对微服务A和微服务B分别的路由规则,并按照XDS协议将针对微服务A的路由规则发送给微服务A的JAVA Agent,并将针对微服务B的路由规则发送给微服务B的Envoy Sidecar。istiod组件还可以将网络系统中微服务与部署微服务的计算节点之间的映射关系,发送给JAVA Agent以及两个Envoy Sidecar。
其中,istiod组件是AMS中的中心控制组件,微服务A是Spring Cloud架构中的微服务,微服务B是服务网格架构中的微服务。关于根据流量控制类型得到路由规则的具体实现,可以参见相关技术中的具体描述,在此不再赘述。
在AMS架构中的数据平面,入口网关的Envoy Sidecar在获取到针对微服务A的调用请求之后,可以按照调用请求调用微服务A,在微服务A运行的过程中可以根据路由规则进一步需求调用微服务B。
需要说明的是,图3中的虚线箭头对应控制平面,实线箭头对应数据平面,图3所示的结构仅为举例。
在本申请实施例中,网格系统包括基于非服务网格架构实现且需要与网格计算节点通信的非网格计算节点,且非网格计算节点上部署有非网格微服务及其代理程序,代理程序用于与服务网格架构中的控制平面交互,以得到针对非网格微服务的路由规则,在非网格微服务需要调用目标网格微服务时,根据路由规则确定需要将非网格微服务的当前流量路由到部署目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在目标网格计算节点上的目标网格微服务,实现由与非网格微服务部署在同一计算节点上的代理程序,提供非网格微服务与网格微服务的互通,由于代理程序与非网格微服务运行在同一进程中,因此代理程序可以共用为非网格微服务的进程分配的资源,无需专门分配用于实现与网格微服务之间互通的资源,从而能够降低非服务网格架构中的微服务与服务网格架构中的微服务之间互通的资源成本。
图4为本申请一实施例提供的网络代理方法的流程示意图,所述方法可以应用于图1所示网络系统中的代理程序,如图4所示,本申请实施例提供的方法可以包括:
步骤41,接收控制平面节点发送的第一数据包,所述第一数据包是所述控制面节点按照服务网格架构支持的特定协议数据格式,对针对所述非网格微服务的路由规则进行打包得到;
步骤42,解析所述第一数据包,得到所述路由规则;
步骤43,在所述非网格微服务需要调用目标网格微服务时,基于所述路由规则确定需要将所述非网格微服务的当前流量路由到部署所述目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在所述目标网格计算节点上的所述目标网格微服务。
一个实施例中,本申请实施例提供的方法还可以包括:
接收所述控制面节点发送的第二数据包,所述第二数据包是所述控制面节点按照所述服务网格架构支持的特定协议数据格式,对所述服务网格架构中网格微服务与部署网格微服务的网格计算节点的地址的映射关系进行打包得到;
解析所述第二数据包,得到所述映射关系,并根据所述映射关系确定部署所述目标网格微服务的目标网格计算节点的地址;
所述调用部署在所述目标网格计算节点上的所述目标网格微服务,具体可以包括:根据所述目标网格计算节点的地址调用部署在所述网格计算节点上的所述目标网格微服务。
一个实施例中,部署所述目标网格微服务的符合所述特定条件的网格计算节点的数量为多个;本申请实施例提供的方法还可以包括:采用负载均衡策略,从部署所述目标网格微服务的符合所述特定条件的多个网格计算节点中选择一个网格计算节点作为目标网格计算节点。
一个实施例中,本申请实施例提供的方法还可以包括:在所述接收所述控制平面节点发送的针对非网格微服务的数据包之前,向所述控制平面节点注册所述非网格微服务。
一个实施例中,本申请实施例提供的方法还可以包括:在所述向所述控制平面节点注册所述非网格微服务之前,从微服务控制台获得与所述控制平面节点进行通信所需的认证参数,并将所述认证参数发送给所述控制平面节点,以便所述控制平面节点对所述代理程序进行身份认证。
可选的,所述非网格微服务对应非服务网格架构,所述非服务网格架构包括Spring Cloud架构。
需要说明的是,关于代理程序的具体实现方式,可以参见图1所示实施例中的具体描述,在此不再赘述。
本实施例提供的网络代理方法,代理程序与服务网格架构中的控制平面交互,以得到针对非网格微服务的路由规则,在非网格微服务需要调用目标网格微服务时,代理程序根据路由规则确定需要将非网格微服务的当前流量路由到部署目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在目标网格计算节点上的目标网格微服务,实现由代理程序提供非网格微服务与网格微服务的互通,由于代理程序与非网格微服务运行在同一进程中,因此代理程序可以共用为非网格微服务的进程分配的资源,无需专门分配用于实现与网格微服务之间互通的资源,从而能够降低非服务网格架构中的微服务与服务网格架构中的微服务之间互通的资源成本。
图5为本申请一实施例提供的网络代理装置的结构示意图,该装置可以执行上述图4所示实施例提供的方法,如图5所示,该装置可以包括:
接收模块51,用于接收控制平面节点发送的第一数据包,所述第一数据包是所述控制面节点按照服务网格架构支持的特定协议数据格式,对针对所述非网格微服务的路由规则进行打包得到;
解析模块52,用于解析所述第一数据包,得到所述路由规则;
流量路由模块53,用于在所述非网格微服务需要调用目标网格微服务时,基于所述路由规则确定需要将所述非网格微服务的当前流量路由到部署所述目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在所述目标网格计算节点上的所述目标网格微服务。
可选的,所述接收模块51,还用于接收所述控制面节点发送的第二数据包,所述第二数据包是所述控制面节点按照所述服务网格架构支持的特定协议数据格式,对所述服务网格架构中网格微服务与部署网格微服务的网格计算节点的地址的映射关系进行打包得到;
所述解析模块52,还用于解析所述第二数据包,得到所述映射关系;
所述流量路由模块53,还用于根据所述映射关系确定部署所述目标网格微服务的目标网格计算节点的地址;
所述流量路由模块53用于调用部署在所述目标网格计算节点上的所述目标网格微服务,具体包括:根据所述目标网格计算节点的地址调用部署在所述网格计算节点上的所述目标网格微服务。
可选的,部署所述目标网格微服务的符合所述特定条件的网格计算节点的数量为多个;所述流量路由模块53,还用于采用负载均衡策略,从部署所述目标网格微服务的符合所述特定条件的多个网格计算节点中选择一个网格计算节点作为目标网格计算节点。
可选的,所述装置还可以包括注册模块,用于向所述控制平面节点注册所述非网格微服务。
可选的,所述装置还可以包括认证模块,用于从微服务控制台获得与所述控制平面节点进行通信所需的认证参数,并将所述认证参数发送给所述控制平面节点,以便所述控制平面节点对所述代理程序进行身份认证。
可选的,所述非网格微服务对应非服务网格架构,所述非服务网格架构包括Spring Cloud架构。
图5所示装置可以执行图4所示实施例的方法,本实施例未详细描述的部分,可参考对图4所示实施例的相关说明。该技术方案的执行过程和技术效果参见图4所示实施例中的描述,在此不再赘述。
在一个可能的实现中,图5所示装置的结构可实现为一计算机设备。如图6所示,该计算机设备可以包括:处理器61和存储器62。其中,存储器62用于存储支持计算机设备执行上述图4所示实施例中提供的方法的程序,处理器61被配置为用于执行存储器62中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器61执行时能够实现如下步骤:
接收控制平面节点发送的第一数据包,所述第一数据包是所述控制面节点按照服务网格架构支持的特定协议数据格式,对针对所述非网格微服务的路由规则进行打包得到;
解析所述第一数据包,得到所述路由规则;
在所述非网格微服务需要调用目标网格微服务时,基于所述路由规则确定需要将所述非网格微服务的当前流量路由到部署所述目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在所述目标网格计算节点上的所述目标网格微服务。
可选的,处理器61还用于执行前述图4所示实施例中的全部或部分步骤。
其中,计算机设备的结构中还可以包括通信接口63,用于计算机设备与其他设备或通信网络通信。
另外,本申请实施例还提供一种计算机程序产品,包括计算机程序指令,当所述指令由处理器执行时,实现如图4所示实施例提供的方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如图4所示实施例提供的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、链表、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (14)
1.一种网络系统,其特征在于,包括:基于服务网格架构实现的控制平面节点以及多个网格计算节点,所述网格计算节点上部署有网格微服务;所述网络系统还包括基于非服务网格架构实现且需要与所述网格计算节点通信的非网格计算节点,所述非网格计算节点上部署有非网格微服务及其代理程序,所述代理程序与所述非网格微服务运行在同一进程中;
所述控制平面节点,用于获取针对所述非网格微服务的路由规则,按照所述服务网格架构支持的特定协议数据格式对所述路由规则进行打包,并将打包获得的第一数据包发送至所述代理程序;
所述代理程序用于接收所述第一数据包并解析所述第一数据包,得到所述路由规则;
所述代理程序还用于在所述非网格微服务需要调用目标网格微服务时,基于所述路由规则确定需要将所述非网格微服务的当前流量路由到部署所述目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在所述目标网格计算节点上的所述目标网格微服务。
2.根据权利要求1所述的网络系统,其特征在于,所述控制平面节点,还用于获取所述服务网格架构中网格微服务与部署网格微服务的网格计算节点的地址的映射关系,按照所述服务网格架构支持的特定协议对所述映射关系进行打包,并将打包获得的第二数据包发送至所述代理程序;
所述代理程序还用于接收所述第二数据包并解析所述第二数据包,得到所述映射关系,并根据所述映射关系确定部署所述目标网格微服务的目标网格计算节点的地址;
所述代理程序用于调用部署在所述目标网格计算节点上的所述目标网格微服务,具体包括:根据所述目标网格计算节点的地址调用部署在所述目标网格计算节点上的所述目标网格微服务。
3.根据权利要求1所述的网络系统,其特征在于,部署所述目标网格微服务的符合所述特定条件的网格计算节点的数量为多个;所述代理程序还用于采用负载均衡策略,从部署所述目标网格微服务的符合所述特定条件的多个网格计算节点中选择一个网格计算节点作为目标网格计算节点。
4.根据权利要求1所述的网络系统,其特征在于,所述代理程序还用于在接收所述数据包之前,向所述控制平面节点注册所述非网格微服务。
5.根据权利要求4所述的网络系统,其特征在于,所述代理程序还用于在向所述控制平面节点注册所述非网格微服务之前,从微服务控制台获得与所述控制平面节点进行通信所需的认证参数,并将所述认证参数发送给所述控制平面节点,以便所述控制平面节点对所述代理程序进行身份认证。
6.根据权利要求1-5任一项所述的网络系统,其特征在于,所述网络系统还包括基于所述服务网格架构实现的网关节点,用于在获取到针对所述非网格微服务的调用请求时,按照所述调用请求调用所述非网格微服务。
7.根据权利要求1-5任一项所述的网络系统,其特征在于,所述非服务网格架构包括Spring Cloud架构。
8.一种网络代理方法,其特征在于,应用于网络系统中的代理程序,所述代理程序与非网格微服务运行在同一进程中,所述方法包括:
接收控制平面节点发送的第一数据包,所述第一数据包是所述控制平面节点按照服务网格架构支持的特定协议数据格式,对针对所述非网格微服务的路由规则进行打包得到;
解析所述第一数据包,得到所述路由规则;
在所述非网格微服务需要调用目标网格微服务时,基于所述路由规则确定需要将所述非网格微服务的当前流量路由到部署所述目标网格微服务的符合特定条件的目标网格计算节点,并调用部署在所述目标网格计算节点上的所述目标网格微服务。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述控制平面节点发送的第二数据包,所述第二数据包是所述控制平面节点按照所述服务网格架构支持的特定协议数据格式,对所述服务网格架构中网格微服务与部署网格微服务的网格计算节点的地址的映射关系进行打包得到;
解析所述第二数据包,得到所述映射关系,并根据所述映射关系确定部署所述目标网格微服务的目标网格计算节点的地址;
所述调用部署在所述目标网格计算节点上的所述目标网格微服务,包括:根据所述目标网格计算节点的地址调用部署在所述网格计算节点上的所述目标网格微服务。
10.根据权利要求8所述的方法,其特征在于,部署所述目标网格微服务的符合所述特定条件的网格计算节点的数量为多个;所述方法还包括:采用负载均衡策略,从部署所述目标网格微服务的符合所述特定条件的多个网格计算节点中选择一个网格计算节点作为目标网格计算节点。
11.根据权利要求8所述的方法,其特征在于,所述接收所述控制平面节点发送的针对非网格微服务的数据包之前,还包括:向所述控制平面节点注册所述非网格微服务。
12.根据权利要求11所述的方法,其特征在于,所述向所述控制平面节点注册所述非网格微服务之前,还包括:从微服务控制台获得与所述控制平面节点进行通信所需的认证参数,并将所述认证参数发送给所述控制平面节点,以便所述控制平面节点进行身份认证。
13.根据权利要求8-12任一项所述的方法,其特征在于,所述非网格微服务对应非服务网格架构,所述非服务网格架构包括Spring Cloud架构。
14.一种计算机设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行时实现如权利要求8至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111084346.0A CN113542437B (zh) | 2021-09-16 | 2021-09-16 | 网络系统、网络代理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111084346.0A CN113542437B (zh) | 2021-09-16 | 2021-09-16 | 网络系统、网络代理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113542437A CN113542437A (zh) | 2021-10-22 |
CN113542437B true CN113542437B (zh) | 2022-02-25 |
Family
ID=78092677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111084346.0A Active CN113542437B (zh) | 2021-09-16 | 2021-09-16 | 网络系统、网络代理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113542437B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726863B (zh) * | 2022-04-27 | 2024-01-09 | 阿里云计算有限公司 | 用于负载均衡的方法、设备、系统及存储介质 |
CN115733746B (zh) * | 2022-11-09 | 2024-06-07 | 中科驭数(北京)科技有限公司 | 一种服务网格单元的部署方法、装置、设备及存储介质 |
CN115834708B (zh) * | 2022-11-23 | 2024-10-18 | 中科驭数(北京)科技有限公司 | 负载均衡方法、装置、设备及计算机可读存储介质 |
CN116192863B (zh) * | 2023-01-13 | 2023-11-28 | 中科驭数(北京)科技有限公司 | 微服务流量处理方法、dpu服务网格部署方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111711801A (zh) * | 2020-06-30 | 2020-09-25 | 重庆紫光华山智安科技有限公司 | 视频数据传输方法、装置、服务器和计算机可读存储介质 |
CN111857864A (zh) * | 2020-06-24 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 适配国产化cpu灵活配置服务网格插件配额方法及装置 |
CN112929230A (zh) * | 2021-01-22 | 2021-06-08 | 中信银行股份有限公司 | 测试处理方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10805213B2 (en) * | 2018-11-19 | 2020-10-13 | International Business Machines Corporation | Controlling data communication between microservices |
CN113395310A (zh) * | 2020-03-12 | 2021-09-14 | 华为技术有限公司 | 一种微服务调用方法、装置、设备及介质 |
CN113296927A (zh) * | 2020-06-09 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 服务网格实例的构建方法、服务网格系统以及多集群系统 |
CN111741120A (zh) * | 2020-07-01 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 一种流量镜像方法、装置及设备 |
CN112910692B (zh) * | 2021-01-19 | 2022-08-02 | 中原银行股份有限公司 | 基于微服务网关的服务网格流量控制方法、系统和介质 |
-
2021
- 2021-09-16 CN CN202111084346.0A patent/CN113542437B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857864A (zh) * | 2020-06-24 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 适配国产化cpu灵活配置服务网格插件配额方法及装置 |
CN111711801A (zh) * | 2020-06-30 | 2020-09-25 | 重庆紫光华山智安科技有限公司 | 视频数据传输方法、装置、服务器和计算机可读存储介质 |
CN112929230A (zh) * | 2021-01-22 | 2021-06-08 | 中信银行股份有限公司 | 测试处理方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113542437A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113542437B (zh) | 网络系统、网络代理方法及设备 | |
EP3334100B1 (en) | Method and apparatus for acquiring service chain information in cloud computing system | |
CN109952796B (zh) | 可共享切片实例的创建及修改 | |
TWI746506B (zh) | 用於網路的負載均衡、控制及網路交互的方法和裝置 | |
US20200099625A1 (en) | Path determination method and system for delay-optimized service function chaining | |
US20190132251A1 (en) | Method and system for supporting multiple qos flows for unstructured pdu sessions | |
US11502919B2 (en) | Network service management method, related apparatus, and system | |
CN112104754B (zh) | 网络代理方法、系统、装置、设备及存储介质 | |
CN109361608B (zh) | 报文处理方法、系统及存储介质 | |
EP3853723A1 (en) | Securing an injection of a workload into a virtual network hosted by a cloud-based platform | |
CN103095479A (zh) | 业务配置的方法及装置 | |
CN111245634B (zh) | 一种虚拟化管理方法及装置 | |
CN114374634A (zh) | 报文转发方法以及网络设备 | |
da Silva Barbosa et al. | A platform for cloudification of network and applications in the Internet of Vehicles | |
CN115086166B (zh) | 计算系统、容器网络配置方法及存储介质 | |
CN116633934A (zh) | 负载均衡方法、装置、节点及存储介质 | |
CN113495776A (zh) | Vnf实例化方法及装置 | |
Al-Surmi et al. | Next generation mobile core resource orchestration: Comprehensive survey, challenges and perspectives | |
CN109313568A (zh) | 用于在网络服务实例之间移动虚拟化网络功能实例的方法和装置 | |
CN110995829A (zh) | 实例调用方法、装置及计算机存储介质 | |
WO2024067338A1 (zh) | 云组网系统、安全访问方法、设备及存储介质 | |
Fulber-Garcia et al. | CUSCO: a customizable solution for NFV composition | |
EP3369217B1 (en) | Multiple gateway operation on single operating system | |
US20240126581A1 (en) | Implementing communications within a container environment | |
CN112995169B (zh) | 防火墙部署方法和装置 |
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 |