CN114327850A - 基于微服务的服务网格***及服务治理方法 - Google Patents

基于微服务的服务网格***及服务治理方法 Download PDF

Info

Publication number
CN114327850A
CN114327850A CN202011641555.6A CN202011641555A CN114327850A CN 114327850 A CN114327850 A CN 114327850A CN 202011641555 A CN202011641555 A CN 202011641555A CN 114327850 A CN114327850 A CN 114327850A
Authority
CN
China
Prior art keywords
access request
service
host
network
application
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.)
Pending
Application number
CN202011641555.6A
Other languages
English (en)
Inventor
张伟
张永明
张超盟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to EP21874416.7A priority Critical patent/EP4209905A4/en
Priority to JP2023519553A priority patent/JP2023543831A/ja
Priority to PCT/CN2021/120838 priority patent/WO2022068756A1/zh
Publication of CN114327850A publication Critical patent/CN114327850A/zh
Priority to US18/192,082 priority patent/US20230239326A1/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及数据处理技术领域,具体涉及一种基于微服务的服务网格***及服务治理方法。其中,该***包括第一节点,第一节点包括第一主机和第一数据卡,第一数据卡插置于第一主机,第一数据卡与第一主机设置有第一数据通道,第一主机上运行有第一容器组,第一容器组中设置有第一微服务,第一数据卡接入网络,通过网络接收管控节点发送的服务治理策略,并根据服务治理策略对第一主机经由第一数据通道发送至第一数据卡的第一访问请求进行服务治理,其中第一访问请求是第一主机从第一容器组获取的第一微服务针对第二微服务的访问请求。该***通过插置于主机的数据卡对来自主机的访问请求进行服务治理,节省了主机的资源以及提高了服务治理的效率。

Description

基于微服务的服务网格***及服务治理方法
技术领域
本申请涉及数据处理领域,且特别涉及一种微服务的服务网格***及服务治理方法。
背景技术
服务网格(service mesh)技术是基于传统互联网协议(internet protocol,IP)网络之上的应用网络技术。基于服务网格技术,服务之间的发现与路由不再直接基于IP地址,而是基于服务的元数据信息(包括但不限于服务名称、版本等)。服务网格技术将微服务架构(microservice architecture)的分布式应用中非功能性的服务治理逻辑从业务进程中剥离到边车(sidecar)中,以无侵入的方式提供服务间的连接、安全、流控、灰度发布、观测能力,实现业务轻量化和服务治理基础设施化。
随着用户需求的发展,微服务的规模和调用复杂度也在快速增长。如何在持续运行阶段高效的治理微服务,是服务网格技术演进的一个重要问题。
发明内容
本申请实施例提供了一种基于微服务的服务网格***及及服务治理方法,可以使用独立于主机的数据卡对访问请求进行服务治理,可在节省主机资源的同时,提高服务治理的效率。
第一方面,本申请实施例提供了一种基于微服务的服务网格***,包括第一节点,第一节点包括第一主机和第一数据卡,第一数据卡插置于第一主机,第一数据卡与第一主机设置有第一数据通道,第一主机上运行有第一容器组,第一容器组中设置有第一微服务,第一数据卡接入网络,通过网络接收管控节点发送的服务治理策略,并根据服务治理策略对第一主机经由第一数据通道发送至第一数据卡的第一访问请求进行服务治理,其中第一访问请求是第一主机从第一容器组获取的第一微服务针对第二微服务的访问请求。
也就是说,该服务网格***中的节点可以利用主机的***设备对访问请求进行服务治理,从而避免了针对访问请求的服务治理占用主机的资源,并且提高了服务治理的效率。
在一种可能的实现方式中,服务治理策略包括第二微服务与运行第二微服务的第二容器组的网络地址的对应关系,其中,第一数据卡,用于根据服务治理策略确认运行第二微服务的第二容器组的网络地址,将第一访问请求的目的地址设置为第二容器组的网络地址,并确认第二容器组设置在第一主机,通过第一数据通道发送修改后的第一访问请求至第二容器组。
也就是说,在该实现方式中,数据卡可以对同一节点上的不同微服务之间的调用进行服务治理
在一种可能的实现方式中,服务治理策略还包括第三微服务与运行第三微服务的第三容器组的网络地址的对应关系;第一主机,还用于从第一容器组获取第一微服务针对第三微服务的第二访问请求,并通过第一数据通道发送第二访问请求至第一数据卡;第一数据卡,用于根据服务治理策略确认运行第三微服务的第三容器组的网络地址,将第二访问请求的目的地址设置为第三容器组的网络地址,并确认第三容器组不是设置在第一主机,通过网络发送第二访问请求。
也就是说,在该实现方式中,数据卡可以对不同节点上的微服务之间的调用进行服务治理。
在一种可能的实现方式中,第一节点还包括第一网卡,第一网卡与第一数据卡连接,第一数据卡通过第一网卡接入网络,其中,第一数据卡,用于发送第二访问请求至第一网卡;第一网卡,用于通过网络发送第二访问请求。
也就是说,在该实现方式中,数据卡可以通过专门设置的网卡和网络进行信息交互,从而节省了数据卡和外部的信息交互所导致的数据卡资源的开销。
在一种可能的实现方式中,该服务网格***还包括第二节点,第二节点包括第二主机、第二数据卡以及第二网卡,第二数据卡插置于第二主机,第二数据卡与第二主机设置有第二数据通道,第二主机上运行有第三容器组,第二网卡与第二数据卡连接,且第二网卡接入网络,其中,第一数据卡,还用于在确认第三容器组不是设置在第一主机的情况下,为第二访问请求设置服务网格标识;第二网卡,用于接收第一网卡发送的第二访问请求,在确认第二访问请求携带服务网格标识的情况下,将第二访问请求发送至第二数据卡;第二数据卡,用于确认第三容器组设置于第二主机的情况下,通过第二数据通道发送第二访问请求至第三容器组。
也就是说,在该实现方式中,第一数据卡可以为用于请求访问微服务的访问请求添加服务网格标识,由此,对端设备可以根据访问请求是否携带服务网格标识快速判断出该访问请求是否用于访问微服务。
在一种可能的实现方式中,该服务网格***还包括第三节点,第三节点包括第三主机,第三主机和第一主机接入网络,第一主机上运行有第一应用,第三主机上运行有第二应用,其中,第一主机,用于获取第一应用针对第二应用的网络地址的第三访问请求,确认第一主机未运行有第二应用的情况下,通过网络发送第三访问请求;第三主机,用于接收第一主机发送的第三访问请求,并将第三访问请求发送至第二应用。
也就是说,在该实现方式中,该服务网格***可以实现不同节点上的普通应用之间的调用。
在一种可能的实现方式中,第一主机上运行有第一应用和第二应用,其中,第一主机,用于获取第一应用针对第二应用的网络地址的第三访问请求,确认第一主机运行有第二应用的情况下,发送第三访问请求至第二应用。
也就是说,在该实现方式中,该服务网格***可以实现同一节点上的不同普通应用之间的调用。
在一种可能的实现方式中,该服务网格***还包括第三节点,第三节点包括第三主机、第三数据卡,第三数据卡插置于第三主机,第三数据卡与第三主机设置有第三数据通道,第三主机上运行有第四容器组,第四容器组中设置有第四微服务,第三数据卡和第一主机接入网络,其中,第一主机上运行有第一应用,其中,第一主机,用于获取第一应用针对第三数据卡的网络地址的第四访问请求,并通过网络发送第四访问请求;第三数据卡,用于接收第一主机发送的第四访问请求,并根据第四访问请求携带的第四微服务的标识,通过第三数据通道发送第四访问请求至第四微服务。
也就是说,在该实现方式中,该服务网格***利用数据卡,可以实现普通应用对微服务的调用。
在一种可能的实现方式中,该服务网格***还包括第三节点,第三节点包括第三主机,第三主机上运行有第三应用,第三主机接入网络,其中,第一主机,用于获取第一微服务针对第三应用的网络地址的第五访问请求,并通过第一数据通道发送第五访问请求至第一数据卡;第一数据卡,用于通过网络发送第五访问请求;第三主机,用于接收第五访问请求,并将第五访问请求发送至第三应用。
也就是说,在该实现方式中,该服务网格***利用数据卡,可以实现微服务对普通应用的调用。
第二方面,本申请实施例提供了一种基于微服务的服务治理方法,该方法应用于基于微服务的服务网格***,服务网格***包括第一节点,第一节点包括第一主机和第一数据卡,第一数据卡插置于第一主机,第一数据卡与第一主机设置有第一数据通道,第一主机上运行有第一容器组,第一容器组中设置有第一微服务,第一数据卡接入网络;该方法包括:第一数据卡通过网络接收管控节点发送的服务治理策略;第一数据卡根据服务治理策略对第一主机经由第一数据通道发送至第一数据卡的第一访问请求进行服务治理,其中第一访问请求是第一主机从第一容器组获取的第一微服务针对第二微服务的访问请求。
在一种可能的实现方式中,服务治理策略包括第二微服务与运行第二微服务的第二容器组的网络地址的对应关系;第一数据卡根据服务治理策略对第一主机经由第一数据通道发送至第一数据卡的第一访问请求进行服务治理,包括:第一数据卡根据服务治理策略确认运行第二微服务的第二容器组的网络地址,将第一访问请求的目的地址设置为第二容器组的网络地址;第一数据卡确认第二容器组设置在第一主机,通过第一数据通道发送修改后的第一访问请求至第二容器组。
在一种可能的实现方式中,服务治理策略还包括第三微服务与运行第三微服务的第三容器组的网络地址的对应关系;该方法还包括:第一主机从第一容器组获取第一微服务针对第三微服务的第二访问请求,并通过第一数据通道发送第二访问请求至第一数据卡;第一数据卡根据服务治理策略确认运行第三微服务的第三容器组的网络地址,将第二访问请求的目的地址设置为第三容器组的网络地址;第一数据卡确认第三容器组不是设置在第一主机,通过网络发送第二访问请求。
在一种可能的实现方式中,第一节点还包括第一网卡,第一网卡与第一数据卡连接,第一数据卡通过第一网卡接入网络;第一数据卡确认第三容器组不是设置在第一主机,通过网络发送第二访问请求,包括:第一数据卡确认第三容器组不是设置在第一主机,发送第二访问请求至第一网卡;第一网卡通过网络发送第二访问请求。
在一种可能的实现方式中,服务网格***还包括第二节点,第二节点包括第二主机、第二数据卡以及第二网卡,第二数据卡插置于第二主机,第二数据卡与第二主机设置有第二数据通道,第二主机上运行有第三容器组,第二网卡与第二数据卡连接,且第二网卡接入网络;该方法还包括:第一数据卡在确认第三容器组不是设置在第一主机的情况下,为第二访问请求设置服务网格标识;第二网卡接收第一网卡发送的第二访问请求,在确认第二访问请求携带服务网格标识的情况下,将第二访问请求发送至第二数据卡;第二数据卡确认第三容器组设置于第二主机的情况下,通过第二数据通道发送第二访问请求至第三容器组。
在一种可能的实现方式中,服务网格***还包括第三节点,第三节点包括第三主机,第三主机和第一主机接入网络,第一主机上运行有第一应用,第三主机上运行有第二应用;该方法还包括:第一主机获取第一应用针对第二应用的网络地址的第三访问请求,确认第一主机未运行有第二应用的情况下,通过网络发送第三访问请求;第三主机接收第一主机发送的第三访问请求,并将第三访问请求发送至第二应用。
在一种可能的实现方式中,第一主机上运行有第一应用和第二应用;该方法还包括:第一主机获取第一应用针对第二应用的网络地址的第三访问请求,确认第一主机运行有第二应用的情况下,发送第三访问请求至第二应用。
在一种可能的实现方式中,服务网格***还包括第三节点,第三节点包括第三主机、第三数据卡,第三数据卡插置于第三主机,第三数据卡与第三主机设置有第三数据通道,第三主机上运行有第四容器组,第四容器组中设置有第四微服务,第三数据卡和第一主机接入网络,第一主机上运行有第一应用;该方法还包括:第一主机获取第一应用针对第三数据卡的网络地址的第四访问请求,并通过网络发送第四访问请求;第三数据卡接收第一主机发送的第四访问请求,并根据第四访问请求携带的第四微服务的标识,通过第三数据通道发送第四访问请求至第四微服务。
在一种可能的实现方式中,服务网格***还包括第三节点,第三节点包括第三主机,第三主机上运行有第三应用,第三主机接入网络;该方法还包括:第一主机获取第一微服务针对第三应用的网络地址的第五访问请求,并通过第一数据通道发送第五访问请求至第一数据卡;第一数据卡通过网络发送第五访问请求;第三主机接收第五访问请求,并将第五访问请求发送至第三应用。
可以理解,第二方面提供的服务治理方法为第一方面提供的服务网格***中节点所执行的方法,因此,其所能达到的有益效果可以参考前述相应的有益效果。
第三方面,本申请实施例提供了一种网络节点,包括主机和数据卡,该数据卡插置于该主机;该主机包括第一处理器和第一存储器,第一存储器用于存储第一计算机指令;该数据卡包括第二处理器和第二存储器,第二存储器用于存储第二计算机指令;当该网络节点运行时,第一处理器执行第一计算机指令,第二处理器执行第二计算机指令,使得该网络节点执行第二方法所提供的方法。
第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质包括计算机指令,当计算机指令在网络节点上运行时,使得网络节点执行第二方面所提供的方法。
第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品包含的程序代码被用于网络节点中的处理器执行时,实现第一方面所提供的方法。
本申请实施例提供的服务网格***及服务治理方法,可以使用具有独立计算能力的数据卡对用于调用服务的访问请求进行服务治理,使得该服务治理不再占用主机的计算资源,节省了主机的计算资源,并且提升了服务治理的效率。
附图说明
图1示出了一种服务治理框架;
图2示出了一种服务网格***;
图3示出了一种服务网格***;
图4示出了本申请实施例提供的一种服务网格***;
图5示出了一种基于图4所示的服务网格***的应用调用流程图;
图6示出了本申请实施例提供的一种节点初始化流程图;
图7示出了本申请实施例提供的一种应用调用流程图;
图8示出了本申请实施例提供的一种应用调用流程图;
图9示出了本申请实施例提供的一种应用调用流程图;
图10示出了本申请实施例提供的一种应用调用流程图;
图11示出了本申请实施例提供的一种应用调用流程图;
图12示出了本申请实施例提供的一种应用调用流程图;
图13示出了本申请实施例提供的一种应用调用流程图;
图14示出了本申请实施例提供的一种应用调用流程图;
图15示出了本申请实施例提供的一种服务治理方法流程图;
图16示出了本申请实施例提供的一种网络节点示意性框图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。
在本说明书的描述中“一个实施例”或“一些实施例”等意味着在本说明书的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
其中,在本说明书的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本说明书实施例的描述中,“多个”是指两个或多于两个。
在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
微服务架构为一种面向服务的架构(service oriented architecture,SOA),其将复杂***切分为多个小服务或者说应用。可以将该小服务或者说应用称为微服务。每个微服务负责实现一个独立的业务逻辑。微服务是围绕业务功能进行构建的,可以独立部署。微服务之间通过相互依赖,从而可以提供一系列的功能。微服务易于被理解和修改,带来了语言和框架选择灵活性。
在微服务架构中,服务治理也称SOA治理(service oriented architecturegovernance,SOA governance),是用来管理微服务架构的采用和实现的过程。
参阅图1示出了一种基于软件开发工具包(software development kit,SDK)的服务治理框架。该框架的典型应用有springcloud、dubbo。在该框架中,客户端(client)或服务端(server)自带服务治理功能。服务治理功能通常有SDK实现。在该框架的开发阶段,需要使用框架自带的SDK进行客户端或服务端开发。一般而言,该框架的开发只支持某种特定的编程语言,例如Java等。虽然该框架具有性能高、调试方便的特点。但对于已存在的其他编程语言的客户端或服务端无法纳入的该框架中,并且该框架的改造较为困难,需要侵入性较强的改造。由此,导致了不必要的风险及开发成本。
图2示出了一种可以实现容器集群的自动化部署、自动扩缩容、维护等功能。其中,容器可以用于部署或设置微服务。
图2所示的***采用Pod级别的边车(sidecar)来作为应用或者说微服务的代理,可以提供对用户透明的服务治理功能,如链路加密、熔断、限流、灰度发布、链路追踪等功能。区别于传统网络代理,Istio不是简单在内核或硬件层对目标I P地址进行负载均衡处理,而是边车负责目标服务的发现以及负载均衡。调用端只需要访问服务的虚拟地址或者说逻辑地址即可。由边车决定如何将服务元信息转成可被实际访问的网络地址,并该根据网络地址将流量发送到被调用的微服务。
图3示出***可以部署Pod级的边车,也可以部署节点(node)级的边车。
无论是图2所示的***还是图3所示的***,边车在带来透明服务治理能力的同时,还占用了过多的主机资源(例如CPU、内存等)。特别是对于公有云环境,需要部署大量Pod,由此带来主机资源的额外开销是不可忽略的。当业务繁忙时,可能会出现边车和微服务互相抢占资源的情况。如果CPU负载过高,可能导致输入/输出(I/O)无法及时处理,进而可能导致边车出现拥塞,届时整个链路的时延将更加恶化。
本申请实施例提供了一种基于微服务的服务网格***。参阅图4,该服务网格***可以包括节点100。节点100可以包括主机110、数据卡120、网卡130。
主机110可以为物理机,例如服务器。主机110可以运行有一个或多个容器组。每个容器组可由一个或多个容器(container)组成。示例性的,容器组可以是指K8s中的Pod。主机110可以部署有一个或多个微服务。其中,每个微服务可以设置或者说运行在一个容器组中。微服务也可以称为微服务应用,可以实现一个独立的业务逻辑。多个微服务可通过调用、被调用关系,提供相应的业务功能。
数据卡120为具有独立计算资源的硬件设备,例如数据卡120具有专用的处理器以及存储器等。示例性的,数据卡120可以为一种软件定义基础设施(software definedinfrastructure,SDI)。数据卡120也可以称为SDI数据卡。数据卡120可以作为主机110的***设备,插置于主机110。数据卡120可以对来自主机110的访问请求进行服务治理。例如,主机110上的微服务对应的边车可以部署在数据卡120上,使得数据卡120可起到边车的作用。由于数据卡120的计算资源独立于主机110的计算资源,由数据卡120扮演边车的角色,避免了边车在进行服务治理时抢占主机110的计算资源。并且,边车的运行可以就近使用数据卡120的计算资源,从而可以提高服务治理的效率,减少网络延迟。
如图4所示,主机110和数据卡120之间设置有数据通道140。主机110可以将需要进行服务治理的访问请求,通过数据通道140发送给数据卡120,以使数据卡120对该访问请求进行服务治理,例如加密、负载均衡等。示例性的,数据通道140可以为快速外部组件互联(peripheral component interconnect express,PCIe)总线,或者说数据通道140由PCIe总线承载。在一个例子中,数据通道140可以基于远程直接数据存取(remote directmemory access,RDMA)技术,接收主机110发送的访问请求。具体而言,主机110可以将访问请求通知数据通道140直接传输到数据卡120的存储区。由此,实现了主机和数据卡之间的数据快速传输,进一步降低网络时延。
网卡130接入网络300,以向网络300发送数据,以及从网络300获取数据。其中,网卡130可以分别与主机110、数据卡120通信连接,以便网卡130可以将从主机110或数据卡120获取的数据发送到网络300,以及将从网络300获取的数据发送给主机110或数据卡120。示例性的,网卡130可以是插置于主机110的***设备。在一个例子中,网卡130具体为一种SDI。网卡130也可以称为SDI网卡。
在一些实施例中,网卡130和数据卡120可以为两个独立的硬件卡或者说硬件装置。在一些实施例中,网卡130和数据卡120可以设置在一个硬件卡或硬件装置上。
在一些实施例中,继续参阅图4,该服务网格***还可以包括节点200。节点200所包括得主机210、数据卡220、网卡230以及数据通道240可以分别参考上文对主机110、数据卡120、网卡130以及数据通道140实现,在此不再赘述。
该服务网格***还可以包括更多个节点,每个节点的可以参考节点100实现,在此不再一一赘述。
上文示例性介绍了本申请实施例提供的服务网格***的结构。接下来,在不同实施例中,示例介绍该服务网格***中的模块或部件的功能。
图5示出了一种基于图4所示的服务网格***的应用调用流程图。
如图5所示,主机110可以设置有一个或多个容器组。具体而言,主机110的操作***(例如,
Figure BDA0002880327280000071
)可以分为用户空间和***内核。该一个或多个容器组可以运行在用户空间中。该一个或多个容器组可以包括容器组111、容器组112。其中,容器组111中设置有微服务1111以及网口1112。微服务1111可以产生访问请求,以调用其他微服务或应用所提供的服务。微服务1111所提供的服务也可以由其他微服务或应用调用。其中,微服务1111可以通过网口1112向外部发送数据或从外部接收数据。容器组112中设置有微服务1121以及网口1122。微服务1121可以产生访问请求,以调用其他微服务或应用所提供的服务。微服务1121所提供的服务也可以由其他微服务或应用调用。其中,微服务1121可以通过网口1122向外部发送数据或从外部接收数据。
主机110还可以设置有普通应用113。其中,普通应用可以是指微服务之外的应用,例如,基于安全外壳协议(secure shell protocol,SSH)的应用、基于远程终端协议(telnettelnet,telnet)的应用。普通应用113可以调用微服务或其他普通应用所提供的服务。普通应用113所提供的服务也可以由微服务或其他普通应用调用。在本申请实施例中,普通应用也可以称为普通服务。
主机110还可以设置有流量拦截模块114。流量拦截模块114可以筛选出需要进行服务治理的访问请求,并将需要服务治理的访问请求通过数据通道140发送给数据卡120。其中,流量拦截模块114可以设置在***内核。
具体而言,主机110上的微服务产生的访问请求可以包括服务标识。其中,该访问请求用于请求建立其和其目标应用的网络连接,以便该目标应用为产生该访问请求的微服务提供服务。其目标应用可以为其他微服务,也可以为普通应用。通常而言,服务标识可以是一种逻辑地址或者说描述信息,其并非具体的微服务或应用的网络地址,或者说其并非运行微服务或应用的容器组的网络地址。服务标识可以用于描述或标识一种服务。或者说,服务标识用于描述或表示其所在的访问请求所请求的服务。在一个示例中,服务标识可以包括服务名称和/或服务版本号等。在一个示例中,服务标识可以为预先设置的用于宣称或表示该访问请求需要进行服务治理的信息。流量拦截模块114可以具有由多个服务标识组成的需治理列表。示例性的,流量拦截模块114可以从控制面代理获取需治理列表。其中,控制面代理中的需治理列表可以是从控制面获取的。在一个例子中,需治理列表可以由控制面代理生成。在另一个例子中,服务网格***的开发人员或运维人员可以在控制面处配置需治理列表。
另外,可以理解的是,对于需要服务治理的访问请求而言,在进行服务治理之前,该访问请求的目标应用还未实际确定。服务治理的一项操作为根据访问请求中的服务标识为该访问请求确定目标应用。
流量拦截模块114从主机110的用户空间获取访问请求。并判断该访问请求中的服务标识是否位于需治理列表中。若该访问请求中的服务标识位于需治理列表中,则可以确定该访问请求为需要进行服务治理的访问请求,并将该访问请求发送给数据卡120。若该访问请求中的服务标识没有位于治理列表中,则可以确定该访问请求不要进行服务治理,可以直接通过网卡130,将该访问请求发送到网络300中,以便经过网络300发送到相应的节点。例如,某一访问请求中的服务标识可以为某一普通应用的网络地址,该网络地址不位于需治理列表。网卡130可以直接根据网络地址将该服务请求发送到相应应用。
继续参阅图5,数据卡120可以包括通信代理121、用户态协议栈122、控制面代理123。通信代理121可以对访问请求进行服务治理,例如加/解密、确定提供访问请求所请求服务的微服务或应用等。示例性的,该通信代理121可以为边车或者说具有边车的功能。更具体的,在一个例子中,该通信代理121可以为K8s***中的边车或者说具有K8s***中的边车的功能。
用户态协议栈122可以用于向通信代理121转发访问请求,以及向其他模块或部件转发通信代理121发出的访问请求。用户态协议122的具体功能,将在下文的具体实施例中进行介绍,在此不再赘述。
节点200包括主机210,数据卡220、网卡230、数据通道240。其中,主机210的用户空间侧设置由普通应用211、普通应用212、容器组213、容器组214。其中,容器组213设置有特殊微服务2131和网口2132。容器组214设置有特殊微服务2141和网口2142。主机210的***内核侧设置有流量拦截模块215。数据卡220可以设置有通信代理221、用户态协议栈222、控制面代理223等。节点200中各部件或模块的功能,可以参考上文对节点100中相应部件或模块的介绍,在此不再赘述。
在服务网格***启动后,其中的节点可以进行初始化。参阅图6,以节点100为例,其初始化可以包括如下步骤。
控制面代理123可以执行步骤601,向用户态协议栈122发送不拦截控制面代理出入流量的指示。其中,控制面代理123的出入流量是指发送端为控制面代理123的数据和接收端为控制面代理123的数据。该指示包括控制面代理的用户标识(user identity,UID)。用户态协议栈122可以根据控制面代理的用户标识,不拦截控制面代理发出的流量(或者说数据),也不拦截发向控制面的流量。也就是说,用户态协议栈122可以根据控制面代理的用户标识识别出控制面代理的出入流量,由此可以不拦截控制面代理123的出入流量,使得控制面代理123的出入流量可以自由通过用户态协议栈122。
控制面代理123可以执行步骤602,接收控制面400发送的服务列表、服务治理策略、特殊微服务列表。
控制面400为服务网格中的控制面。控制面400可以称为管控节点。或者,控制面400可以是运行在管控节点上具有控制和管理功能的程序或者说模块。
服务列表可以包括服务标识和可以提供该服务标识对应服务的微服务或应用的网络地址对应关系列表。其中,微服务可以在控制面400注册该微服务的名称、服务标识以及运行该微服务的容器组的网络地址等。示例性的,容器组的网络地址可以包括该容器组的IP地址和端口号。由此,控制面400可以根据构建微服务的服务标识以及运行该微服务的容器组的网络地址的对应关系,得到服务列表。
在一些实施例中,服务列表也可以称为服务治理策略,或者说服务治理策略包括服务列表。
在一些实施例中,服务治理策略可以包括是否对某个访问请求进行加密或解密、是否对某个访问请求进行负载均衡等策略。另外,服务治理策略的具体实现还可以参考现有技术介绍,在此不再赘述。
特殊微服务列表包括一个或多个特殊微服务的标识信息。可以理解,一般而言,在服务网格***中,对于用于请求连接某微服务的访问请求而言,其需要经过两次服务治理,一次为发送端(例如节点100)中通信代理进行的服务治理,另一次为接收端(例如节点100)中通信代理进行的服务治理。而特殊微服务的情况比较特殊,具体而言,用于请求连接特殊微服务的访问请求只需经过一次服务治理即可。
继续参阅图6,控制面代理123可以执行步骤603a,向流量拦截模块114发送需治理列表。在一些实施例中,需治理列表可以由服务网格***的开发人员或运维人员配置得到。在一些实施例中,控制面代理123可以根据服务列表,自动生成需治理列表。如上所述,服务列表可以包括服务标识和可以提供该服务标识对应服务的微服务或应用的网络地址对应关系列表。控制面代理123可以将服务列表中的服务标识用作需治理列表。需要说的是,虽然前文介绍了两种配置需治理列表的方式。本申请实施例提供的方案在具体实现时,倾向于采用根据服务列表自动生成需治理列表的方式,以进一步减少对人力的依赖。
控制面代理123可以执行步骤603b,向用户态协议栈122发送特殊微服务列表。用户态协议栈122在接收到一访问请求时,可以判断该访问请求用于请求连接的微服务是否位于该特殊微服务列表。若该访问请求用于请求连接的微服务位于该特殊微服务列表,则用户态协议栈122不向通信代理121发送该访问请求,而是直接向主机110发送该访问请求。
控制面代理123还可以执行步骤603c,向通信代理121发送服务列表、服务治理策略,使得通信代理121可以根据服务列表以及服务治理策略对访问请求进行服务治理。具体而言,可以根据服务列表,利用访问请求中的服务标识,确定该访问请求的连接目标应用,即确定该访问请求的目标应用的网络地址。例如,若服务治理策略包括加密策略,则通信代理121可以对访问请求进行加密。
控制面代理123还可以执行步骤604,从控制面400接收更新后的服务列表、更新后的服务治理策略、更新后的特殊微服务列表。
控制面代理123还可以执行步骤605a,向流量拦截模块114发送更新后的需治理列表。在一些实施例中,该更新后的需治理列表可以是控制面代理123根据更新后的服务列表生成的。
控制面代理123还可以执行步骤605b,向用户态协议栈123发送更新后的特殊微服务列表。
控制面代理123还可以执行步骤605d,向通信代理121发送更新后的服务列表、更新后的服务治理策略。
通过以上步骤可以实现节点100的初始化,其他节点的初始化可以参考节点100的初始化实现,在此不再赘述。
在服务网格***中的节点进行了上述初始化后,可以实现如下调用。
(一)、节点100上的微服务调用节点100上的其他微服务。
(二)、节点100上的微服务调用节点200上的微服务。
(三)、节点100的普通应用调用节点200上的普通应用。
(四)、节点100的微服务调用节点200的特殊微服务。其中,特殊微服务具体将在下文进行具体介绍,在此不再赘述。
(五)、节点200上的普通应用调用节点200上的其他普通应用。
(六)、节点200转发节点100的访问请求。
(七)、节点100上的普通应用调用节点200上的微服务。
(八)、节点100上的微服务调用节点200的普通应用。
接下来,在不同实施例中,对上述八种调用情况进行具体说明。
实施例一,节点100上的微服务调用节点100上的其他微服务。
在本实施例中,以微服务1111调用微服务1121为例进行说明。其中,微服务1111可以产生用于连接微服务1121的访问请求,以建立微服务1111和微服务1121之间的通信连接,使得微服务1121可以为微服务1111提供相关服务,由此实现微服务1111调用微服务1121。可以理解的是,在微服务架构中,微服务1111在产生访问请求时,并不实际知晓其要连接微服务1121,只是知晓其需要何种服务,进而将该种服务的服务标识携带在访问请求中,或者说作为访问请求的原始目标地址。在经过通信代理对访问请求进行服务治理后,可以确定实际为微服务1111提供服务的目标应用,进而将访问请求转发到目标应用上,以建立微服务1111和目标应用之间的连接。
接下来,结合图7、图5对微服务1111调用微服务1121的具体数据转发路径进行说明。
微服务1111可以产生访问请求A1。该访问请求A1可以包括微服务1121可提供的服务的服务标识。示例性的,访问请求A1可以为网络套接字(socket)连接请求,其中,访问请求A1中的服务标识可以称为访问请求A1的原始socket目标地址(destination,DST)。微服务1111可以执行步骤701,将访问请求A1发送给流量拦截模块114。流量拦截模块114可以根据访问请求A1中的服务标识,利用需治理列表,判断访问请求A1是否需要进行服务治理。访问请求A1中的服务标识为微服务1121对应的服务标识,该服务标识位于需治理列表中,确定访问请求A1需要进行服务治理。由此,流量拦截模块114可以执行步骤702,将访问请求A1转发到数据通道140。
在一个说明性示例中,步骤701、步骤702的数据流可以如图5中的(1)所示。微服务1111可以产生的访问请求A1可以为网络套接字(socket)连接请求。其中,访问请求A1中的服务标识可以用作socket连接的原始socket目标地址。访问请求A1可以被发送到流量拦截模块114。流量拦截模块114分析服务标识对应的服务为服务网格中的服务,即该服务标识对应的服务需要进行服务治理。流量拦截模块114将访问请求A1转发到数据通道140。
数据通道140可以执行步骤703,将访问请求A1发送给用户态协议栈122。其中,步骤703可以参阅图5中的(2)。示例性的,如上所述,数据通道140为PCIe总线或者说由PCIe总线承载。在步骤703中,数据通道140位于主机110的一端可以将访问请求A1转换为PCIe协议下的数据流,并通道数据通道140传输转换后的数据流。数据通道140位于数据卡120的一端可以将以PCIe协议下的数据流呈现的访问请求A1转换为socket连接请求的形式,并且将访问请求A1发送到用户态协议栈122。另外,本申请实施例中,用户态协议栈122独立于主机110的操作***自带的网络协议栈,由此,可以避免或降低主机110和数据卡120之间的数据交互带来的***开销。
用户态协议栈122可以执行步骤704,向通信代理121发送访问请求A1。其中,步骤704可以参阅图5中的(2)。示例性的,网络态协议栈122可以保存访问请求A1中的服务标识,即访问请求A1的原始socket目标地址。网络态协议栈122可以将访问请求A1的socket目标地址更新为通信代理121的监听端口1的网络地址,从而可以将访问请求A1发送到监听端口1。至此,可以建立微服务1111和监听端口1之间的socket连接或者说socket链路,其中,监听端口1也可以称为通信代理121的出流量(outbound)监听端口。
通信代理121可以通过监听端口1获取访问请求A1,并获取访问请求A1中的服务标识。可以理解,网络态协议栈122位于微服务1111和监听端口1之间的socket链路上,且保存了访问请求A1中的服务标识。通信代理121可以通过socket链路从用户态协议栈122获取访问请求A1中的服务标识。
通信代理121可以执行步骤705,对访问请求A1进行服务治理。具体而言,通信代理121可以根据访问请求A1中的服务标识,按照服务治理策略进行服务治理。其中,服务治理可以包括通过负载均衡选取为微服务1111提供该服务标识所描述的服务的应用。在本实施例中,可以确定选取的为微服务1111提供该服务标识所描述的服务的应用为微服务1121,即确定微服务1121为访问请求A1的目标应用。示例性的,在确定出访问请求A1的目标应用时,可以将访问请求A1的socket目标地址更新为微服务1121的网络地址。其中,微服务1121的网络地址具体可以是指运行微服务1121的容器组的网络地址,即容器组112的网络地址。示例性的,容器组112的网络地址可以包括容器组112的IP地址和端口号。
通信代理121可以执行步骤706,将访问请求A1发送到用户态协议栈122。用户态协议栈122可以执行步骤707,确定访问请求A1的目标应用位于本节点。然后,用户态协议栈122可以执行步骤708,将访问请求A1发送给通信代理121的监听端口2。具体可以参阅图5中的(3)、(6),用户态协议栈122可以判断访问请求A1的发送进程的用户标识(useridentity,UID)为通信代理121为步骤706的执行者,以及根据访问请求A1中的socket目标地址判断访问请求A1的目标应用(即微服务1121)位于本节点(即节点100)。然后,用户态协议栈122可以判断其在步骤706接收到访问请求A1入方向(inbound)流量,从而将访问请求A1转发到通信代理121的监听端口2,由此保证了即使微服务调用本地的其他微服务,也可以实现对称进入两次通信代理,进行两次服务治理。其中,监听端口2可以称为通信代理121的入流量(inbound)监听端口。
通信代理121可以执行步骤709,对再次接收到的访问请求A1进行服务治理。例如,在步骤705的服务治理中,对访问请求A1中的业务数据或者说用户数据进行了加密。则在步骤709的服务服务治理中,可以对加密的数据进行解密。
通信代理121可以执行步骤710,向用户态协议栈122发送经过再次服务治理后的访问请求A1。其中,通信代理121在执行步骤710之前,可以调用用户态协议栈122提供的应用程序接口(application programming interface,API)为访问请求A1添加服务治理标识。该服务治理标识用于表示访问请求A1已经过两次服务治理,且目标应用位于本地。
用户态协议栈122可以执行步骤711,向数据通道140发送访问请求A1。可参阅图5中(7)、(8),用户态协议栈122在接收到步骤710中发送的访问请求A1时,可以根据访问请求A1携带的服务治理标识,确定该访问请求A1为入方向流量,且目标应用位于本节点的容器组中。由此,可以执行步骤711,向数据通道140发送访问请求A1。
数据通道140可以执行步骤712,向流量拦截模块114发送访问请求A1。可参阅图5中的(8),数据通道140位于数据卡120的一端在接收到步骤711中发送的访问请求A1时,可以将该访问请求A1转换为PCIe协议下的数据流,并向主机110方向传输该PCIe下的数据流。当该PCIe下的数据流到达数据通道140位于主机110的一端时,可以将该PCIe下的数据流转换为socket连接请求。
流量拦截模块114具体为出流量拦截模块,也就是说,其只拦截或者说过滤主机110向外部发送的流量,不过滤主机110从外部接收的流量。流量拦截模块114在接收到通过步骤712发送的访问请求A1时,可以根据该访问请求A1的socket目标地址(即微服务1121的网络地址)将该访问请求A1发送的到目标应用(即微服务1121),由此,可以建立微服务1111和微服务1121之间的socket连接,实现微服务1111对微服务1121的调用。
实施例二,节点100上的微服务调用节点200上的微服务。
在本实施例中,以微服务1111调用微服务2141为例,进行说明。其中,微服务1111可以产生用于连接微服务2141的访问请求,以建立微服务1111和微服务2141之间的通信连接,使得微服务2141可以为微服务1111提供相关服务,由此实现微服务1111调用微服务2141。可以理解的是,在微服务架构中,微服务1111在产生访问请求时,并不实际知晓其要连接微服务2141,只是知晓其需要何种服务,进而将该种服务携带在访问请求中,或者说作为访问请求的原始目标地址。在经过通信代理对访问请求进行服务治理后,可以确定实际为微服务1111提供服务的目标应用,进而将访问请求转发到目标应用上,以建立微服务1111和目标应用之间的连接。
接下来,结合图8、图5对微服务1111调用微服务2141的具体数据转发路径进行说明。
微服务1111可以产生访问请求A2。该访问请求A2可以包括微服务2141可提供的服务的服务标识。微服务1111可以执行步骤801,将访问请求A2发送给流量拦截模块114。流量拦截模块114可以根据访问请求A2中的服务标识,利用需治理列表,判断访问请求A2是否需要进行服务治理。访问请求A2中的服务标识为微服务2141对应的服务标识,该服务标识位于需治理列表中,确定访问请求A2需要进行服务治理。由此,流量拦截模块114可以执行步骤802,将访问请求A2转发到数据通道140。
数据通道140可以执行步骤803,将访问请求A2发送给用户态协议栈122。
用户态协议栈122可以执行步骤804,向通信代理121发送访问请求A2。
其中,步骤801、步骤802、步骤803、步骤804的执行具体可以参考上文对步骤701、步骤702、步骤703、步骤704的介绍,在此不再赘述。
通信代理121可以执行步骤805,对访问请求A2进行服务治理。具体而言,通信代理121可以根据访问请求A2中的服务标识,按照服务治理策略进行服务治理。其中,服务治理可以包括通过负载均衡选取为微服务1111提供该服务标识所描述的服务的应用。在本实施例中,可以确定选取的为微服务1111提供该服务标识所描述的服务的应用为微服务2141,即确定微服务2141为访问请求A2的目标应用。示例性的,在确定出微服务2141为访问请求A2的目标应用时,可以将访问请求A2的socket目标地址更新为微服务2141的网络地址。特殊微服务2131可以称为访问请求A4的目标应用,特殊微服务2131的网络地址可以称为访问请求A4的目标应用地址。其中,微服务2141的网络地址具体可以是指运行微服务2141的容器组的网络地址,即容器组214的网络地址。示例性的,容器组214的网络地址可以包括容器组214的IP地址和端口号。
通信代理121可以执行步骤806,将访问请求A2发送到用户态协议栈122。用户态协议栈122可以执行步骤807,确定访问请求A2的实际目标应用不位于本节点。然后,用户态协议栈122可以执行步骤808,为访问请求A2添加服务网格标识。服务网格标识用于表示访问请求A2的目标应用属于微服务。服务网格标识的具体形式可以为自定义的字段,编号等。在具体形式时,服务网格***的开发人员或运维人员可以自定义服务网格标识。用户态协议栈122还可以执行步骤809,封装访问请求A2的目标应用地址。由上所述,在步骤805中确定出的目标应用地址为微服务2141的网络地址。可以理解,微服务2141位于某个节点(即节点200)上。在步骤809中,可以将微服务2141的网络地址封装为该节点的IP地址。例如,微服务2141的网络地址可以为容器组214的网络地址。容器组214的网络地址可以包括容器组214的IP地址和端口号。容器214位于节点200上,则在步骤809中,将微服务2141的网络地址封装为节点200的IP地址。
另外,步骤806、步骤807、步骤808、步骤809的执行还可以参考图5中的(3)。具体而言,在步骤806中,访问请求A2作为通信代理121发出的出流量被发送到用户态协议栈122。用户态协议栈122可以根据访问请求A2的数据流发送进程UID确定出通信代理121为该出流量的发送者,以及根据访问请求A2的目标应用地址确定该目标应用不位于本节点(节点100)。然后,可以对该访问请求A2进行服务网格标识添加,目标应用地址封装等。
接着,用户态协议栈122可以执行步骤810,向网卡130发送访问请求A2。参阅图5中的(4),网卡在处理发向外部的流量时,可以直接通过网络发送到目标节点的网卡。回到本实施例,参阅图8,网卡130可以执行步骤811,向网卡230发送访问请求A2。具体而言,网卡130可以经过网络300将访问请求A2发送到网卡230。
参阅图8,网卡230可以执行步骤812,从访问请求A2中恢复目标应用地址;以及执行步骤813,确定访问请求A2具有服务网格标识。还可参阅图5中的(10),网卡230的物理网卡在接收到承载访问请求A2的数据包后,可以恢复出访问请求A2的目标应用地址,并判断访问请求A2是否具有服务网格标识。
接着,网卡230可以执行步骤814,将访问请求A2发送到用户态协议栈222。也可以参阅图5中的(12),网卡230通过其与数据卡220之间的虚拟网口,将访问请求A2转发到用户态协议栈222中。
用户态协议栈222可以执行步骤815,确定访问请求A2的目标应用不为特殊微服务。如上所述,在初始化过程中,用户态协议栈可以获得特殊微服务列表。特殊微服务列表包括一个或多个特殊微服务的标识信息。其中,标识信息可以为网络地址。由此,在步骤815中,用户态协议栈222可以根据目标应用的网络地址,确定该目标应用不为特殊微服务,即确定该目标应用的网络地址不位于特殊微服务列表中。在确定访问请求A2的目标应用不为特殊微服务之后,用户态协议栈222可以执行步骤816,向通信代理221发送访问请求A2。通信代理221可以对访问请求A2进行二次服务治理。例如,解密访问请求A2中的业务数据。之后,通信代理221可以执行步骤818,向用户态协议栈222发送经过二次服务治理后的访问请求A2。其中,通信代理221在执行步骤818之前,可以调用用户态协议栈222提供的API为访问请求A2添加服务治理标识。该服务治理标识用于表示访问请求A2已经过服务治理,且目标应用位于本地(通信代理221所在的节点)。
步骤815-步骤818的执行还可以参阅图5中的(14),用户态协议栈222确定访问请求A2的目标应用地址不为非特殊微服务的地址,即目标应用不为特殊微服务,则将访问请求A2转发到通信代理221的监听端口3。监听端口3为通信代理221的入流量监听端口。通信代理221记录访问请求A2为入方向流量,并对访问请求A2进行服务治理。在对访问请求A2进行了服务治理,并在向上游模块或部件发送访问请求A2时,可以调用用户态协议栈222的API为访问请求A2添加服务治理标识。
用户态协议栈222可以执行步骤819,向数据通道240发送访问请求A2。可参阅图5中(15),用户态协议栈222在接收到步骤818中发送的访问请求A2时,可以根据访问请求A2携带的服务治理标识,确定该访问请求A2为入方向流量,且目标应用位于本节点的容器组中。由此,可以执行步骤819,向数据通道240发送访问请求A2。
数据通道240可以执行步骤820,向流量拦截模块215发送访问请求A2。可参阅图5中的(15),数据通道240位于数据卡120的一端在接收到步骤819中发送的访问请求A2时,可以将该访问请求A2转换为PCIe协议下的数据流,并向主机210方向传输该PCIe下的数据流。当该PCIe下的数据流到达数据通道240位于主机210的一端时,可以将该PCIe下的数据流转换为socket连接请求。
流量拦截模块215具体为出流量拦截模块,也就是说,其只拦截或者说过滤主机210向外部发送的流量,不过滤主机210从外部接收的流量。流量拦截模块215在接收到通过步骤820发送的访问请求A2时,可以执行步骤821,向微服务应用2141发送访问请求A2。具体而言,可以根据该访问请求A2的socket目标地址(即微服务2141的网络地址)将该访问请求A2发送的到目标应用(即微服务2141)。
由此,可以建立微服务1111和微服务2141之间的连接,实现微服务1111对微服务2141的调用。示例性的,访问请求A2具体可以为socket连接请求,建立的微服务1111和微服务2141之间的连接可以为socket连接。
实施例三,节点100的普通应用调用节点200上的普通应用。
接下来,结合图9、图5,以普通应用113调用普通应用211为例,介绍本实施例所提供的方案。
普通应用113可以产生访问请求A3,访问请求A3的目标应用地址为普通应用211的网络地址。示例性的,普通应用211的网络地址可以包括普通应用211的IP地址和端口号。参阅图9,普通应用113可以执行步骤901,向流量拦截模块114发送访问请求A3。流量拦截模块114可以确定普通应用的网络地址不位于需治理列表中,进而可以执行步骤902,向主机110的虚拟网口发送访问请求A3,以便主机110的虚拟网口可以执行步骤903,向网卡130发送访问请求A3。还可以参阅图5中的(9),普通应用113可以发送访问请求A3。流量拦截模块114判断访问请求A3的目标应用为普通应用,直接将访问请求通过虚拟网口发送到网卡130。
网卡130可以执行步骤904,封装访问请求A3的目标应用地址。具体而言,可以如图5中的(5)所示,网卡130在检测到访问请求A3的目标应用位于节点100之外的节点时,可以将目标应用地址进行封装。可以将目标应用地址封装为目标应用所在节点的地址。例如,目标应用地址为普通应用211的网络地址,普通应用位于节点200上,可以将该网络地址封装成为节点200的IP地址。示例性的,普通应用211的网络地址可以包括普通应用211的IP地址和端口号。
网卡130还可以执行步骤905,向网卡230发送访问请求A3。具体而言,可参阅图5中的(5),网卡130可以通过物理网卡将访问请求A3发送到网络300中,然后,网络300可以根据访问请求A3的目的地址(即步骤904封装后得到的地址),将访问请求A3转发到网卡230。
网卡230在接收到访问请求A3后,可以执行步骤906,恢复访问请求A3的目标应用地址。即在步骤906中,可以将步骤904封装的目标应用地址恢复出来。
网卡230可以执行步骤907,确定访问请求A3不具有服务网格标识。可以理解,服务请求A3没有经过数据卡120,因此,不具有服务网格标识。网卡230还可以执行步骤908,确定目标应用地址不为服务网格网关地址。服务网格网关地址是指通信代理的某个监听端口的地址。例如,图5中的监听端口3可以作为节点200的服务网格网关地址。之后,网卡230可以执行步骤909,向主机210的虚拟网口发送访问请求A3。主机210的虚拟网口可以执行步骤910,向流量拦截模块215发送访问请求A3。流量拦截模块215可以执行步骤911,向普通应用211发送访问请求A3。
步骤907-步骤911的执行还可以参阅图5中的(11),网卡230可以确定访问请求A3不具有服务网格标识,且目标应用地址不是服务网格网关,则可以将访问请求A3通过虚拟网口转发到主机210。然后,主机210的***内核可以将访问请求A3直接发送给普通应用211。
由此,可以建立普通应用113和普通应用211之间的连接,实现普通应用113对普通应用211的调用。示例性的,访问请求A3具体可以为socket连接请求,建立的普通应用113和普通应用211之间的连接可以为socket连接。
实施例四、节点100的微服务调用节点200的特殊微服务。
特殊微服务一般包括但不限于不需要经过第二个通信代理(例如边车)就可连接的应用。也就是说,目标应用为特殊微服务的访问请求无需经过第二次服务治理,就可以达到目标应用,实现源应用和目标应用之间的连接。其中,源应用是指产生访问请求的应用。典型的特殊微服务有提供限流服务的微服务、提供数据收集服务的微服务等。
调用特殊微服务的一个场景为,主机用户空间中的微服务发起的访问请求,在经过第一次通信代理时,该通信代理本身需要主动调用特殊微服务来对该访问请求进行服务治理。例如可以调用提供限流服务的微服务,并判断该访问请求是否超过限流阈值。若超过限流阈值,则通信代理可以向发起该访问请求的微服务返回失败响应。在该访问请求经过第一次通信代理时,该通信代理还可以调用数据收集服务,以便将统计的链路调用数据上报到数据收集服务,以进行网络调用拓扑图绘制。
由于特殊微服务属于服务网格中的微服务,难以在网卡中配置用于拦截目标应用为特殊微服务的访问请求的拦截方案,使得已经过第一次服务治理的访问请求可能再次被发送到第二次通信代理中,从而导致不必要的服务治理。为了解决该问题,本实施例可以通过用户态协议中的特殊微服务列表判断访问请求的目标应用是否为特殊微服务,进而可以在访问请求的目标应用不是特殊微服务的情况下,将访问请求不经过第二次通信代理,而直接发送到主机。
接下来,结合图10、图5,以节点100上的微服务1111调用节点200上的特殊微服务2131为例,对本实施例的方案进行示例说明。
微服务1111可以产生访问请求A4。该访问请求A4可以包括特殊微服务2131可提供的服务的服务标识。微服务1111可以执行步骤1001,将访问请求A4发送给流量拦截模块114。流量拦截模块114可以根据访问请求A4中的服务标识,利用需治理列表,判断访问请求A4是否需要进行服务治理。访问请求A4中的服务标识为特殊微服务2131对应的服务标识,该服务标识位于需治理列表中,确定访问请求A4需要进行服务治理。由此,流量拦截模块114可以执行步骤1002,将访问请求A4转发到数据通道140。
数据通道140可以执行步骤1003,将访问请求A4发送给用户态协议栈122。
用户态协议栈122可以执行步骤1004,向通信代理121发送访问请求A4。
其中,步骤1001、步骤1002、步骤1003、步骤1004的执行具体可以参考上文对步骤701、步骤702、步骤703、步骤704的介绍,在此不再赘述。
通信代理121可以执行步骤1005,对访问请求A4进行服务治理。具体而言,通信代理121可以根据访问请求A4中的服务标识,按照服务治理策略进行服务治理。其中,服务治理可以包括通过负载均衡选取为微服务1111提供该服务标识所描述的服务的应用。在本实施例中,可以确定选取的为微服务1111提供该服务标识所描述的服务的应用为特殊微服务2131,即确定特殊微服务2131为访问请求A4的目标应用。示例性的,在确定出特殊微服务2131为访问请求A4的目标应用时,可以将访问请求A4的socket目标地址更新为特殊微服务2131的网络地址。其中,特殊微服务2131可以称为访问请求A4的目标应用,特殊微服务2131的网络地址可以称为访问请求A4的目标应用地址。特殊微服务2131的网络地址可以是指运行特殊微服务2131的容器组的网络地址,即容器组213的网络地址。示例性的,容器组213的网络地址可以包括容器组213的IP地址和端口号。
通信代理121可以执行步骤1006,将访问请求A4发送到用户态协议栈122。用户态协议栈122可以执行步骤1007,确定访问请求A4的目标应用不位于本节点。然后,用户态协议栈122可以执行步骤1008,为访问请求A4添加服务网格标识。服务网格标识可以参考上文对图8所示实施例的介绍,在此不再赘述。用户态协议栈122还可以执行步骤1009,封装访问请求A4的目标应用地址。由上所述,在步骤1005中确定出的目标应用地址为特殊微服务2131的网络地址。可以理解,特殊微服务2131位于某个节点(即节点200)上。在步骤1009中,可以将特殊微服务2131的网络地址封装为该节点的地址。例如,特殊微服务2131的网络地址可以为包括容器组213的网络地址。容器组213位于节点200,可以在步骤1009中,将特殊微服务2131的网络地址封装为节点200的IP地址。
另外,步骤1006、步骤1007、步骤1008、步骤1009的执行还可以参考图5中的(3)。具体而言,在步骤1006中,访问请求A4作为通信代理121发出的出流量被发送到用户态协议栈122。用户态协议栈122可以根据访问请求A4的数据流发送进程UID确定出通信代理121为该出流量的发送者,以及根据访问请求A4的目标应用地址确定该目标应用不位于本节点(节点100)。然后,可以对该访问请求A4进行服务网格标识添加,目标应用地址封装等。
接着,用户态协议栈122可以执行步骤1010,向网卡130发送访问请求A4。参阅图5中的(4),网卡在处理发向外部的流量时,可以直接通过网络发送到目标节点的网卡。回到本实施例,参阅图10,网卡130可以执行步骤1011,向网卡230发送访问请求A4。具体而言,网卡130可以经过网络300将访问请求A4发送到网卡230。
参阅图10,网卡230可以执行步骤1012,从访问请求A4中恢复目标应用地址;以及执行步骤1013,确定访问请求A4具有服务网格标识。还可参阅图5中的(10),网卡230的物理网卡在接收到承载访问请求A4的数据包后,可以恢复出访问请求A4的目标应用地址,并判断访问请求A4是否具有服务网格标识。
接着,网卡230可以执行步骤1014,将访问请求A4发送到用户态协议栈222。也可以参阅图5中的(12),网卡230通过其与数据卡220之间的虚拟网口,将访问请求A4转发到用户态协议栈222中。
用户态协议栈222可以执行步骤1015,确定访问请求A4的目标应用为特殊微服务。如上所述,在初始化过程中,用户态协议栈可以获得特殊微服务列表。特殊微服务列表包括一个或多个特殊微服务的标识信息。其中,标识信息可以为网络地址。由此,在步骤1015中,用户态协议栈222可以根据目标应用的网络地址,确定该目标应用为特殊微服务,即确定该目标应用的网络地址位于特殊微服务列表中。
在确定访问请求A4的目标应用为特殊微服务之后,用户态协议栈222可以执行步骤1016,向数据通道240发送访问请求A4。数据通道240可以执行步骤1017,向流量拦截模块215发送访问请求A4。流量拦截模块215可以执行步骤1018,向特殊微服务2131发送访问请求A4。
其中,步骤1016-步骤1018的执行可以参考图5中的(13),用户态协议栈222在确定访问请求A4的目标应用为特殊微服务2131后,可以将访问请求A4直接发送到数据通道240。在访问请求A4为socket连接请求的情况下,数据通道240位于数据卡120的一端在接收到访问请求A4时,可以将该访问请求A4转换为PCIe协议下的数据流,并向主机210方向传输该PCIe下的数据流。当该PCIe下的数据流到达数据通道240位于主机210的一端时,可以将该PCIe下的数据流转换为socket连接请求形式的访问请求A4。主机210的***内核可以直接将访问请求A4发送给特殊微服务2131。
由此,可以建立微服务1111和特殊微服务2131之间的连接,实现微服务1111对特殊微服务2131的调用。示例性的,访问请求A4具体可以为socket连接请求,建立的微服务1111和特殊微服务2131之间的连接可以为socket连接。
实施例五,节点200上的普通应用调用节点200上的其他普通应用。
接下来,结合图11、图5,以普通应用212调用普通应用211为例,介绍本实施例所提供的方案。
参阅图11,普通应用212可以产生访问请求A5,访问请求A5的目标应用地址为普通应用211的网络地址。普通应用212可以执行步骤1101,向流量拦截模块215发送访问请求A5。流量拦截模块215可以判断访问请求A5的目标应用为普通应用211。流量拦截模块215可以执行步骤1102,将访问请求A5发送给普通应用211。
可以参阅图5中的(17a),普通应用212发起的访问请求的目标应用为普通应用211。主机210的***内核中的流量拦截模块215,可以确定普通应用212请求连接的目标应用为本机上的普通应用211,进而可以直接将普通应用212发起的访问请求发送至普通应用211。
由此,可以建立普通应用212和普通应用211之间的连接,实现普通应用212对普通应用211的调用。
实施例六,节点200转发节点100的访问请求。
服务网格***还可以包括节点500。由于组网的限制,节点100和节点B500之间不具有直接的通信连接,使得节点100上的微服务发出的访问请求难以直接被发送到节点500上。在这种情况下,节点100上的微服务在需要调用节点500上的应用(可以为微服务,也可以为普通应用)时,节点200可以将节点100发送的访问请求转发到节点500上。也就是说,节点200可以提供中转服务,以作为节点100和节点500之间的中转节点。其中,中转服务属于服务网格中的服务,也就是说中转服务可以由某个或某些微服务提供。在一个例子中,中转服务具体可以有节点中的通信代理提供。
接下来,结合图12、图5,以微服务1111调用节点500上的服务为例,对本实施例提供的方案进行说明。
微服务1111可以产生用于请求调用节点500上的应用的访问请求A6。为方便描述,可以将访问请求A6请求调用的节点500上的应用称为应用B。在节点100和节点500之间没有直接通信连接的情况下。对于访问请求A6为socket连接请求而言,微服务1111可以将应用B的网络地址封装在访问请求A6的C1层的报头中。并将中转服务的服务标识作为访问请求A6的C2层的目标地址。其中,C2层中的目标地址为访问请求A6的直接地址,访问请求A6转发途径上的模块或部件可以直接识别C2层中的目标地址,并根据该目标地址路由访问请求A6。其中,可以理解,在服务网格***中,微服务1111在产生的访问请求时为访问请求所设置的C2层的目标地址为服务标识,并非某个具体模块或部件的地址,其用于标识该访问请求需要进行服务治理,从而可以根据C2层的目标地址,将访问请求转发到通信代理。示例性的,C2层可以为网络七层协议中的传输层或者说第四层。C1层为C2层的更高层,示例性的,C1层可以为网络七层协议中的应用层或者说第七层。
微服务1111可以执行步骤1201,将访问请求A6发送给流量拦截模块114。流量拦截模块114可以确定访问请求A6的传输层的目标地址,也就是中转服务的服务标识,位于需治理列表中,从而可以确定访问请求A6需要进行服务治理。
流量拦截模块114可以执行步骤1202,将访问请求A6转发到数据通道140。数据通道140可以执行步骤1203,将访问请求A6发送给用户态协议栈122。用户态协议栈122可以执行步骤1204,向通信代理121发送访问请求A6。
其中,步骤1202、步骤1203、步骤1204的执行具体可以参考上文对步骤701、步骤702、步骤703、步骤704的介绍,以及上文对图5中(1)(2)的介绍。在此不再赘述。
通信代理121可以执行步骤1205,对访问请求A6进行服务治理。具体而言,通信代理121可以根据访问请求A6的C1层的服务标识,按照服务治理策略进行服务治理,以确定为访问请求A6提供中转服务的应用。示例性的,可以设定在步骤1205中,确定出节点200中的通信代理221为访问请求A6提供中转服务。也就是说,确定出通信代理221为访问请求A6的目标应用,通信代理221的网络地址为访问请求A6的目标应用地址。之后,通信代理121可以将访问请求A6的C2层的目标地址更新为通信代理221的网络地址。示例性的,通信代理221的网络地址具体可以为监听端口3的网络地址。通信代理121可以通过步骤1206,将更新后的访问请求A6发送到用户态协议栈122。
用户态协议栈122可以执行步骤1207,确定访问请求A6的目标应用不位于本节点。用户态协议栈122可以执行步骤1208,为访问请求A6添加服务网格标识,以及执行步骤1209,封装访问请求A6的目标应用地址。具体而言,可以将通信代理221的网络地址封装成为节点200的IP地址。用户态协议栈122还可以执行步骤1210,将进行了地址封装后的访问请求A6发送到网口130。网口130可以执行步骤1211,将访问请求A6发送到网卡230。
网卡230可以执行步骤1212,恢复访问请求A6的目标应用地址;以及执行步骤1213,确定访问请求A6具有服务网格标识。然后,网卡230可以执行步骤1214,将访问请求A6发送至用户态协议栈222。
用户态协议栈222可以执行步骤1215,确定访问请求A6的目标应用为不为特殊微服务。之后,用户态协议栈222可以通过步骤1216,将访问请求A6发送至通信代理221。
其中,步骤1205-步骤1216的执行具体可以参考上文对图8中步骤805-816,以及图5中(2)、(3)、(4)、(10)、(12)、(14)的介绍实现,在此不再赘述。
继续参阅图12,通信代理221可以执行步骤1217,解析访问请求A6的C1层报头,得到应用B的网络地址。通信代理221可以跳过对访问请求A6的服务治理,而是执行步骤1218,将访问请求A6的目标应用地址更新为应用B的网络地址,也就是说,访问请求A6的目标应用更新为应用B。然后,可以执行步骤1220,向用户态协议栈222发送更新后的访问请求A6。示例性,在步骤1220中,通信代理221可以调用用户态协议栈222的API为访问请求A6添加服务治理标识。
其中,步骤1217-1220的执行还可以参阅图5中的(15),通信代理221可以记录访问请求A6为入方向流量,并且根据访问请求A6数据包中的内容(即C1层的内容),判断节点200为访问请求A6的中转节点。由此,跳过后续服务治理;将访问请求A6的目标应用地址更新为应用B的地址;并根据访问请求A6为入方向流量,调用用户态协议栈222的API为访问请求A6添加服务治理标识。
用户态协议栈222可以执行步骤1221,确定访问请求A6的目标应用不位于本节点(节点200);以及执行步骤1222,封装访问请求A6的目标应用地址。示例性的,可以将应用B的网络地址封装称为节点500的IP地址。在一个例子中,在应用B为微服务的情况下,用户态协议栈222还可以为访问请求A6添加服务网格标识。然后,用户态协议栈222可以在步骤1223中,将访问请求A6发送至网卡230。网卡230可以执行步骤1224,向节点500发送访问请求A6。
其中,步骤1221-1224的执行还可以参阅图5中的(16),用户态协议栈222可以判断访问请求A6的目标应用不位于本节点,并且根据访问请求A6的服务治理标识,确定访问请求A6为入方向流量。则可以为访问请求A6添加服务网格标识,封装目标应用地址,然后通过网卡230将访问请求A6发送到网络300中,以便通过网络300将访问请求A6发送到节点500。
通过上述方案,可以在节点和另一节点不具有直接通信连接的情况下,可以将其他节点作为中转节点,以实现节点间的间接通信。
实施例七,节点100上的普通应用调用节点200上的微服务。
在普通应用需要调用微服务的场景下,可以通过将通信代理配置为入方向网关实现。其中,入方向网关也可以称为服务网格网关。当访问请求的目标地址为服务网格网关地址时,即使访问请求不包括服务网格标识,网卡也可以将该访问请求发送至数据卡,以便数据卡对该访问请求进行服务治理,并发送到相应的微服务,实现普通应用对微服务的调用。
接下来,结合图13、图5,以普通应用113调用微服务2141为例,对本实施例提供的普通应用调用微服务的方案进行示例说明。
普通应用113可以产生以节点200的服务网格网关地址为初始目标地址的访问请求A7。并且服务请求A7还可以包括普通应用113所需服务的服务标识。服务标识可以参考上文介绍,在此不再赘述。示例性的,访问请求A7可以为一个数据包,可以将服务标识封装到数据包的应用层的报头中。另外,可以理解,访问请求A7的目标地址一般位于传输层。
普通应用113可以执行步骤1301,向网卡130发送访问请求A7。其中,也可以参阅图5中的(5),访问请求A7在经过流量拦截模块114时,流量拦截模块114确定其初始目标地址不位于需治理列表中。示例性的,其初始目标地址可以为位于传输层的地址。也就是说,流量拦截模块114确定访问请求A7的传输层的地址不位于需治理列表中。进而流量拦截模块114可以将访问请求A7通过虚拟网口发送至网卡130。
网卡130可以执行步骤1302,封装访问请求A7的初始目标地址。示例性的,作为初始目标地址的服务网格网关地址可以为通信代理221的某个监听端口的网络地址。可以将该监听端口的网络地址封装成为节点200的IP地址。
网卡130可以执行步骤1303,将进行了初始目标地址封装后的访问请求A7发送至网卡230。具体可以参阅图5中的(10),在步骤1303中,访问请求A7可以经过网卡130的物理网卡进入网络300,经网络300转发后,可以由网卡230的物理网卡接收。
网卡230可以执行步骤1304,恢复访问请求A7的初始目标地址。即恢复出服务网格网关地址。网卡230可以执行步骤1305,将访问请求A7发送至用户态协议栈222。可以参阅图5中的(17b)、(12),网卡230可以确定访问请求A7的初始目标地址为服务网格网关地址。在访问请求A7的初始目标地址为服务网格网关地址的情况下,即使访问请求A7不具有服务网格标识,网卡230也可以通过虚拟网口将访问请求A7发送至用户态协议栈222。
用户态协议栈222可以执行步骤1306,确定访问请求A7的初始目标地址为服务网格网关地址。然后,可以执行步骤1307,将访问请求A7发送至通信代理221。在一个例子中,可以参阅图5中的(14),可以设定初始目标地址具体可以为通信代理221的监听端口3的网络地址。用户态协议栈221在确定初始目标地址不为特殊微服务的地址,以及访问请求A7不具有服务网格标识的情况下,可以将访问请求A7发送至通信代理221的监听端口3。
通信代理221可以执行步骤1308,确定访问请求A7实际请求的服务。如上所述,访问请求A7携带有服务标识,该服务标识用于表示普通应用113所需服务。该服务标识可以处于访问请求A7的应用层报头。通信代理221可以解析访问请求A7,例如可以解析访问请求A7的应用层报头,从而可以得到该服务标识。在得到服务标识后,通信代理221可以执行步骤1309,对访问请求A7进行服务治理。具体而言,可以根据该服务标识,利用服务列表以及服务治理策略,确定用于提供该服务标识所表示的服务的微服务。在本实施例中,可以设定确定微服务2141用于提供该服务标识所表示的服务。然后,通信代理211可以执行步骤1310,向用户态协议栈222发送访问请求A7。其中,步骤1308-步骤1310的执行可以参阅图5中(14),通信代理221在通过监听端口3接收到访问请求A7时,可以记录访问请求A7为入方向流量。在对访问请求A7进行了服务治理后,在向上游模块或部件发送访问请求A7时,可以调用用户态协议栈222的API为访问请求A7添加服务治理标识。
在本实施例中,某个服务的服务标识可以简称为该服务的标识。
用户态协议栈222可以执行步骤1311,向微服务2141发送访问请求A7。步骤1311的具体过程可以参考上文对图8中步骤819-821的介绍,在此不再赘述。
由此,可以建立普通应用113和微服务2141之间的连接,实现普通应用113对微服务2141的调用。示例性的,访问请求A7具体可以为socket连接请求,建立的普通应用113和微服务2141之间的连接可以为socket连接。
实施例八,节点100上的微服务调用节点200的普通应用。
服务网格***中的某些普通应用可能会被微服务调用。在本实施例中,为了实现这些普通应用可被微服务调用,可以预定义这些普通应用的所提供服务的服务标识。以服务C为例,其服务标识可以为描述或表示服务C的信息。其中,服务C可以为普通应用所提供。可以将这些普通应用所提供的服务的服务标识设置在需治理列表中。在本实施例中,为表述方便,可将普通应用所提供的服务的服务标识称为普通应用的服务标识。示例性的,普通应用的服务标识可以为普通应用的网络地址。在一个例子中,普通应用的网络地址可以包括普通应用的IP地址和端口号。
由上所述,需治理列表可以由服务网格***的开发人员或运维人员预先配置。在配置需治理列表时,可以将可能会被微服务调用的普通应用的服务标识添加到需治理列表中。在需治理列表包括普通应用的服务标识的情况下,携带了普通应用的服务标识的访问请求可以被发送到数据卡,以便可以接受通信代理的服务治理。由此,普通应用的服务标识用于宣称访问请求需要进行服务治理。
在一些实施例中,服务列表也可以包括普通应用的服务标识和网络地址的对应关系,以便通信代理可以根据服务标识确定可供访问的网络地址。服务列表包括网络地址所对应的应用的类型,应用的类型可分为微服务和普通应用。即服务列表中记录了网络地址所对应的应用是微服务,还是普通应用。
需治理列表、服务列表的具体配置方式可以参考上文对图6所示的实施例的介绍,在此不再赘述。
接下来,结合图14、图5,以微服务1111调用普通应用211为例,对本实施例提供的微服务调用普通应用的方案进行示例说明。
在微服务1111需要使用普通应用211所提供的服务时,可以产生访问请求A8,并将该服务的服务标识作为访问请求A8的初始目标地址。
微服务1111可以执行步骤1401,向流量拦截模块114发送访问请求A8。流量拦截模块114可以确定访问请求A8的初始目标地址或者说访问请求A8所携带的服务标识位于需治理列表中,流量拦截模块114可以执行步骤1402,向数据通道140发送访问请求A8。数据通道140可以执行步骤1403,向用户态协议栈122发送访问请求A8。用户态协议栈122可以执行步骤1404,向通信代理121发送访问请求A8。其中,步骤1401-1404的执行可以参考上文对图7中步骤702-704,以及图5中(1)、(2)的介绍,在此不再赘述。
通信代理121可以执行步骤1405,对访问请求A8进行服务治理。其中,可以包括根据访问请求A8所携带的服务标识,利用服务列表,按照负载均衡策略,确定可提供该服务标识所描述的服务的应用。可以设定确定出的应用为普通应用211。经过步骤1405,普通应用211的网络地址被确定为访问请求A8的目标应用地址,相应地,普通应用211被确定为访问请求A8的目标应用。
通信代理121可以执行步骤1406,为访问请求A8添加非服务网格标识。非服务网格标识用于表示携带其的访问请求的目标应用不属于微服务。如上所述,服务列表记录了网络地址所对应的应用的类型。在确定普通应用211的网络地址被确定为访问请求A8的目标应用地址时,可以确定访问请求A8的目标应用为普遍应用,而非服务网格中的微服务。由此,可以为访问请求A8添加非服务网格标识。示例性的,通信代理121可以调用API为访问请求A8添加非服务网格标识。
在执行了步骤1406之后,通信代理121可以执行步骤1407,向用户态协议栈122发送访问请求A8。
用户态协议栈122可以执行步骤1408,确定访问请求A8的目标应用不位于本节点,以及确定访问请求A8具有非服务网格标识。然后,用户态协议栈122可以执行步骤1409,封装访问请求A8的目标应用地址。具体而言,可以将访问请求A8的目标应用地址封装成为节点200的IP地址。
接着,用户态协议栈122可以将访问请求A8发送到网卡130。网卡130在接收到访问请求A8时,可以执行步骤1411,向网卡230发送访问请求A8。
网卡230在接收到访问请求A8时,可以执行步骤1412,恢复访问请求A8的目标应用地址。还可以执行步骤1413和步骤1414。其中,在步骤1413中,可以确定访问请求A8不具有服务网格标识,以及确定访问请求A8具有非服务网格标识。在步骤1414中,确定访问请求A8的目标应用地址不是服务网格网关地址。由此,网卡230可以执行步骤1415,将访问请求A8直接发送到普通应用211。
还可以参阅图5中的(11),在A8不具有服务网格标识,且访问请求A8的目标应用地址不是服务网格网关地址的情况下,网卡230不再向数据卡220发送访问请求A8,而是直接通过虚拟网卡向主机210发送访问请求A8,使得主机210可以将访问请求A8直接发送到普通应用211。
由此,建立微服务1111和普通应用211之间的连接,实现微服务1111对普通应用211的调用。示例性的,访问请求A8具体可以为socket连接请求,建立的微服务1111和普通应用211之间的连接可以为socket连接。
通过以上描述可知,在本申请实施例中,可以将边车下放到数据卡,使得服务网格内服务调用可被下沉到数据卡进行处理和发送,从而不再占用主机的计算资源,提升了服务治理的效率,以及节省了主机的计算资源。同时,客户应用无需进行改造,就可以应用于本申请实施例提供的服务网格***,由此,该服务网格***具有较大的利用价值。
综合以上实施例,本申请实施例还提供了一种服务网格***。可以参与图4,该服务***可以包括节点100,节点100包括主机110和数据卡120,数据卡120插置于主机110,数据卡120与主机110设置有数据通道140,主机110上运行有第一容器组,第一容器组中设置有第一微服务,数据卡120接入网络300。
数据卡120可以通过网络300接收管控节点发送的服务治理策略,并根据服务治理策略对主机110经由数据通道140发送至数据卡120的第一访问请求进行服务治理,其中第一访问请求是主机110从第一容器组获取的第一微服务针对第二微服务的访问请求。具体可以参考上文对图5、图6、图7所示各实施例的介绍,在此不再赘述。
在一些实施例中,服务治理策略包括第二微服务与运行第二微服务的第二容器组的网络地址的对应关系,其中,数据卡120,用于根据服务治理策略确认运行第二微服务的第二容器组的网络地址,将第一访问请求的目的地址设置为第二容器组的网络地址,并确认第二容器组设置在主机110,通过数据通道140发送修改后的第一访问请求至第二容器组。具体可以参考上文对实施例一的介绍,在此不再赘述。
在一些实施例中,服务治理策略还包括第三微服务与运行第三微服务的第三容器组的网络地址的对应关系;主机110,还用于从第一容器组获取第一微服务针对第三微服务的第二访问请求,并通过数据通道140发送第二访问请求至数据卡120;数据卡120,用于根据服务治理策略确认运行第三微服务的第三容器组的网络地址,将第二访问请求的目的地址设置为第三容器组的网络地址,并确认第三容器组不是设置在主机110,通过网络发送第二访问请求。具体可以参考上文对实施例二的介绍,在此不再赘述。
在这些实施例的一个示例中,节点100还包括网卡130,网卡130与数据卡120连接,数据卡120通过网卡130接入网络,其中,数据卡120,用于发送第二访问请求至网卡130;网卡130,用于通过网络发送第二访问请求。具体可以参考上文对实施例二的介绍,在此不再赘述。
在该示例的一个例子中,参阅图4,该服务网格***还包括节点200,节点200包括主机210、数据卡220以及网卡230,数据卡220插置于主机210,数据卡220与主机210设置有数据通道240,主机210上运行有第三容器组,网卡230与数据卡220连接,且网卡230接入网络,其中,数据卡120,还用于在确认第三容器组不是设置在主机110的情况下,为第二访问请求设置服务网格标识;网卡230,用于接收网卡130发送的第二访问请求,在确认第二访问请求携带服务网格标识的情况下,将第二访问请求发送至数据卡220;数据卡220,用于确认第三容器组设置于主机210的情况下,通过数据通道240发送第二访问请求至第三容器组。具体可以参考上文对实施例二的介绍,在此不再赘述。
在一些实施例中,服务网格***还包括节点200,节点200包括主机210,主机210和主机110接入网络,主机110上运行有第一应用,主机210上运行有第二应用,其中,主机110,用于获取第一应用针对第二应用的网络地址的第三访问请求,确认主机110未运行有第二应用的情况下,通过网络发送第三访问请求;主机210,用于接收主机110发送的第三访问请求,并将第三访问请求发送至第二应用。具体可以参考上文对实施例三的介绍,在此不再赘述。
在一些实施例中,主机110上运行有第一应用和第二应用,其中,主机110,用于获取第一应用针对第二应用的网络地址的第三访问请求,确认主机110运行有第二应用的情况下,发送第三访问请求至第二应用。具体可以参考上文对实施例五的介绍,在此不再赘述。
在一些实施例中,服务网格***还包括节点200,节点200包括主机210、数据卡220,数据卡220插置于主机210,数据卡220与主机210设置有数据通道240,主机210上运行有第四容器组,第四容器组中设置有第四微服务,数据卡220和主机110接入网络,其中,主机110上运行有第一应用,其中,主机110,用于获取第一应用针对数据卡220的网络地址的第四访问请求,并通过网络发送第四访问请求;数据卡220,用于接收主机110发送的第四访问请求,并根据第四访问请求携带的第四微服务的标识,通过数据通道240发送第四访问请求至第四微服务。具体可以参考上文对实施例七的介绍,在此不再赘述。
在一些实施例中,服务网格***还包括节点200,节点200包括主机210,主机210上运行有第三应用,主机210接入网络,其中,主机110,用于获取第一微服务针对第三应用的网络地址的第五访问请求,并通过数据通道140发送第五访问请求至数据卡120;数据卡120,用于通过网络发送第五访问请求;主机210,用于接收第五访问请求,并将第五访问请求发送至第三应用。具体可以参考上文对实施例八的介绍,在此不再赘述。
参阅图15,本申请实施例提供了一种数据处理方法。该方法可以应用于图4所示的服务网格***。如图15所示,该方法包括如下步骤。
步骤1501,数据卡120通过网络接收管控节点发送的服务治理策略。
步骤1502,数据卡120根据服务治理策略对主机110经由数据通道140发送至数据卡120的第一访问请求进行服务治理。其中第一访问请求是主机110从第一容器组获取的第一微服务针对第二微服务的访问请求。
具体可以参考上文对图5、图6、图7所示各实施例的介绍,在此不再赘述。
在一些实施例中,服务治理策略包括第二微服务与运行第二微服务的第二容器组的网络地址的对应关系;步骤1502包括:数据卡120根据服务治理策略确认运行第二微服务的第二容器组的网络地址,将第一访问请求的目的地址设置为第二容器组的网络地址;数据卡120确认第二容器组设置在主机110,通过数据通道140发送修改后的第一访问请求至第二容器组。具体可以参考上文对实施例一的介绍,在此不再赘述。
在一些实施例中,服务治理策略还包括第三微服务与运行第三微服务的第三容器组的网络地址的对应关系;该方法还包括:主机110从第一容器组获取第一微服务针对第三微服务的第二访问请求,并通过数据通道140发送第二访问请求至数据卡120;数据卡120根据服务治理策略确认运行第三微服务的第三容器组的网络地址,将第二访问请求的目的地址设置为第三容器组的网络地址;数据卡120确认第三容器组不是设置在主机110,通过网络发送第二访问请求。具体可以参考上文对实施例二的介绍,在此不再赘述。
在这些实施例的一个示例中,节点100还包括网卡130,网卡130与数据卡120连接,数据卡120通过网卡130接入网络;数据卡120确认第三容器组不是设置在主机110,通过网络发送第二访问请求,包括:数据卡120确认第三容器组不是设置在主机110,发送第二访问请求至网卡130;网卡130通过网络发送第二访问请求。具体可以参考上文对实施例二的介绍,在此不再赘述。
在该示例的一个例子中,服务网格***还包括节点200,节点200包括主机210、数据卡220以及网卡230,数据卡220插置于主机210,数据卡220与主机210设置有数据通道240,主机210上运行有第三容器组,网卡230与数据卡220连接,且网卡230接入网络;该方法还包括:数据卡120在确认第三容器组不是设置在主机110的情况下,为第二访问请求设置服务网格标识;网卡230接收网卡130发送的第二访问请求,在确认第二访问请求携带服务网格标识的情况下,将第二访问请求发送至数据卡220;数据卡220确认第三容器组设置于主机210的情况下,通过数据通道240发送第二访问请求至第三容器组。具体可以参考上文对实施例二的介绍,在此不再赘述。
在一些实施例中,服务网格***还包括节点200,节点200包括主机210,主机210和主机110接入网络,主机110上运行有第一应用,主机210上运行有第二应用;该方法还包括:
主机110获取第一应用针对第二应用的网络地址的第三访问请求,确认主机110未运行有第二应用的情况下,通过网络发送第三访问请求;主机210接收主机110发送的第三访问请求,并将第三访问请求发送至第二应用。具体可以参考上文对实施例三的介绍,在此不再赘述。
在一些实施例中,主机110上运行有第一应用和第二应用;方法还包括:主机110获取第一应用针对第二应用的网络地址的第三访问请求,确认主机110运行有第二应用的情况下,发送第三访问请求至第二应用。具体可以参考上文对实施例五的介绍,在此不再赘述。
在一些实施例中,,服务网格***还包括节点200,节点200包括主机210、数据卡220,数据卡220插置于主机210,数据卡220与主机210设置有数据通道240,主机210上运行有第四容器组,第四容器组中设置有第四微服务,数据卡220和主机110接入网络,主机110上运行有第一应用;该方法还包括:主机110获取第一应用针对数据卡220的网络地址的第四访问请求,并通过网络发送第四访问请求;数据卡220接收主机110发送的第四访问请求,并根据第四访问请求携带的第四微服务的标识,通过数据通道240发送第四访问请求至第四微服务。具体可以参考上文对实施例七的介绍,在此不再赘述。
在一些实施例中,服务网格***还包括节点200,节点200包括主机210,主机210上运行有第三应用,主机210接入网络;该方法还包括:主机110获取第一微服务针对第三应用的网络地址的第五访问请求,并通过数据通道140发送第五访问请求至数据卡120;数据卡120通过网络发送第五访问请求;主机210接收第五访问请求,并将第五访问请求发送至第三应用。具体可以参考上文对实施例八的介绍,在此不再赘述。
参阅图16,本申请实施例还提供了一种网络节点1600,包括主机1610和数据卡1620。数据卡1620插置于主机1610。示例性的,如图16所示,数据卡1620通过PCIe接口插置于主机1610。
主机1610可以包括处理器1611和存储器1612。存储器1612中存储有计算机指令,该计算机指令可被处理器1611执行。数据卡1620可以包括处理器1621和存储器1622。存储器1622中存储有计算机指令,该计算机指令可被处理器1621执行。其中,当存储器1612存储的计算机指令被处理器1611执行,存储器1622存储的计算机指令被处理器1621执行时,网络节点1600可以执行图5-15所示的各实施例中节点100或节点200所执行的操作。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

Claims (18)

1.一种基于微服务的服务网格***,其特征在于,包括第一节点,所述第一节点包括第一主机和第一数据卡,所述第一数据卡插置于所述第一主机,所述第一数据卡与所述第一主机设置有第一数据通道,所述第一主机上运行有第一容器组,所述第一容器组中设置有第一微服务,所述第一数据卡接入网络,通过所述网络接收管控节点发送的服务治理策略,并根据所述服务治理策略对所述第一主机经由所述第一数据通道发送至所述第一数据卡的第一访问请求进行服务治理,其中所述第一访问请求是所述第一主机从所述第一容器组获取的所述第一微服务针对第二微服务的访问请求。
2.根据权利要求1所述的服务网格***,其特征在于,所述服务治理策略包括所述第二微服务与运行所述第二微服务的第二容器组的网络地址的对应关系,其中,
所述第一数据卡,用于根据所述服务治理策略确认运行所述第二微服务的第二容器组的网络地址,将所述第一访问请求的目的地址设置为所述第二容器组的网络地址,并确认所述第二容器组设置在所述第一主机,通过所述第一数据通道发送修改后的所述第一访问请求至所述第二容器组。
3.根据权利要求1所述的服务网格***,其特征在于,所述服务治理策略还包括第三微服务与运行所述第三微服务的第三容器组的网络地址的对应关系;
所述第一主机,还用于从所述第一容器组获取所述第一微服务针对第三微服务的第二访问请求,并通过所述第一数据通道发送所述第二访问请求至所述第一数据卡;
所述第一数据卡,用于根据所述服务治理策略确认运行所述第三微服务的第三容器组的网络地址,将所述第二访问请求的目的地址设置为所述第三容器组的网络地址,并确认所述第三容器组不是设置在所述第一主机,通过所述网络发送所述第二访问请求。
4.根据权利要求3所述的服务网格***,其特征在于,所述第一节点还包括第一网卡,所述第一网卡与所述第一数据卡连接,所述第一数据卡通过所述第一网卡接入所述网络,其中,
所述第一数据卡,用于发送所述第二访问请求至所述第一网卡;
所述第一网卡,用于通过所述网络发送所述第二访问请求。
5.根据权利要求4所述的服务网格***,其特征在于,还包括第二节点,所述第二节点包括第二主机、第二数据卡以及第二网卡,所述第二数据卡插置于所述第二主机,所述第二数据卡与所述第二主机设置有第二数据通道,所述第二主机上运行有所述第三容器组,所述第二网卡与所述第二数据卡连接,且所述第二网卡接入所述网络,其中,
所述第一数据卡,还用于在确认所述第三容器组不是设置在所述第一主机的情况下,为所述第二访问请求设置服务网格标识;
所述第二网卡,用于接收所述第一网卡发送的所述第二访问请求,在确认所述第二访问请求携带所述服务网格标识的情况下,将所述第二访问请求发送至所述第二数据卡;
所述第二数据卡,用于确认所述第三容器组设置于所述第二主机的情况下,通过所述第二数据通道发送所述第二访问请求至所述第三容器组。
6.根据权利要求1-5任一项所述的服务网格***,其特征在于,还包括第三节点,所述第三节点包括第三主机,所述第三主机和所述第一主机接入所述网络,所述第一主机上运行有第一应用,所述第三主机上运行有第二应用,其中,
所述第一主机,用于获取所述第一应用针对所述第二应用的网络地址的第三访问请求,确认所述第一主机未运行有所述第二应用的情况下,通过所述网络发送所述第三访问请求;
所述第三主机,用于接收所述第一主机发送的所述第三访问请求,并将所述第三访问请求发送至所述第二应用。
7.根据权利要求1-5任一项所述的服务网格***,其特征在于,所述第一主机上运行有第一应用和第二应用,其中,
所述第一主机,用于获取所述第一应用针对所述第二应用的网络地址的第三访问请求,确认所述第一主机运行有所述第二应用的情况下,发送所述第三访问请求至所述第二应用。
8.根据权利要求1-5任一项所述的服务网格***,其特征在于,还包括第三节点,所述第三节点包括第三主机、第三数据卡,所述第三数据卡插置于所述第三主机,所述第三数据卡与所述第三主机设置有第三数据通道,所述第三主机上运行有第四容器组,所述第四容器组中设置有第四微服务,所述第三数据卡和所述第一主机接入所述网络,其中,
所述第一主机上运行有第一应用,其中,
所述第一主机,用于获取所述第一应用针对所述第三数据卡的网络地址的第四访问请求,并通过所述网络发送所述第四访问请求;
所述第三数据卡,用于接收所述第一主机发送的所述第四访问请求,并根据所述第四访问请求携带的所述第四微服务的标识,通过所述第三数据通道发送所述第四访问请求至所述第四微服务。
9.根据权利要求1-5任一项所述的服务网格***,其特征在于,还包括第三节点,所述第三节点包括第三主机,所述第三主机上运行有第三应用,所述第三主机接入所述网络,其中,
所述第一主机,用于获取所述第一微服务针对第三应用的网络地址的第五访问请求,并通过所述第一数据通道发送所述第五访问请求至所述第一数据卡;
所述第一数据卡,用于通过网络发送所述第五访问请求;
所述第三主机,用于接收所述第五访问请求,并将所述第五访问请求发送至所述第三应用。
10.一种基于微服务的服务治理方法,其特征在于,应用于基于微服务的服务网格***,所述服务网格***包括第一节点,所述第一节点包括第一主机和第一数据卡,所述第一数据卡插置于所述第一主机,所述第一数据卡与所述第一主机设置有第一数据通道,所述第一主机上运行有第一容器组,所述第一容器组中设置有第一微服务,所述第一数据卡接入网络;
所述方法包括:
所述第一数据卡通过所述网络接收管控节点发送的服务治理策略;
所述第一数据卡根据所述服务治理策略对所述第一主机经由所述第一数据通道发送至所述第一数据卡的第一访问请求进行服务治理,其中所述第一访问请求是所述第一主机从所述第一容器组获取的所述第一微服务针对第二微服务的访问请求。
11.根据权利要求10所述的方法,其特征在于,所述服务治理策略包括所述第二微服务与运行所述第二微服务的第二容器组的网络地址的对应关系;
所述第一数据卡根据所述服务治理策略对所述第一主机经由所述第一数据通道发送至所述第一数据卡的第一访问请求进行服务治理,包括:
所述第一数据卡根据所述服务治理策略确认运行所述第二微服务的第二容器组的网络地址,将所述第一访问请求的目的地址设置为所述第二容器组的网络地址;
所述第一数据卡确认所述第二容器组设置在所述第一主机,通过所述第一数据通道发送修改后的所述第一访问请求至所述第二容器组。
12.根据权利要求10所述的方法,其特征在于,所述服务治理策略还包括第三微服务与运行所述第三微服务的第三容器组的网络地址的对应关系;
所述方法还包括:
所述第一主机从所述第一容器组获取所述第一微服务针对第三微服务的第二访问请求,并通过所述第一数据通道发送所述第二访问请求至所述第一数据卡;
所述第一数据卡根据所述服务治理策略确认运行所述第三微服务的第三容器组的网络地址,将所述第二访问请求的目的地址设置为所述第三容器组的网络地址;
所述第一数据卡确认所述第三容器组不是设置在所述第一主机,通过所述网络发送所述第二访问请求。
13.根据权利要求12所述的方法,其特征在于,所述第一节点还包括第一网卡,所述第一网卡与所述第一数据卡连接,所述第一数据卡通过所述第一网卡接入所述网络;
所述第一数据卡确认所述第三容器组不是设置在所述第一主机,通过所述网络发送所述第二访问请求,包括:
所述第一数据卡确认所述第三容器组不是设置在所述第一主机,发送所述第二访问请求至所述第一网卡;
所述第一网卡通过所述网络发送所述第二访问请求。
14.根据权利要求13所述的方法,其特征在于,所述服务网格***还包括第二节点,所述第二节点包括第二主机、第二数据卡以及第二网卡,所述第二数据卡插置于所述第二主机,所述第二数据卡与所述第二主机设置有第二数据通道,所述第二主机上运行有所述第三容器组,所述第二网卡与所述第二数据卡连接,且所述第二网卡接入所述网络;
所述方法还包括:
所述第一数据卡在确认所述第三容器组不是设置在所述第一主机的情况下,为所述第二访问请求设置服务网格标识;
所述第二网卡接收所述第一网卡发送的所述第二访问请求,在确认所述第二访问请求携带所述服务网格标识的情况下,将所述第二访问请求发送至所述第二数据卡;
所述第二数据卡确认所述第三容器组设置于所述第二主机的情况下,通过所述第二数据通道发送所述第二访问请求至所述第三容器组。
15.根据权利要求10-14任一项所述的方法,其特征在于,所述服务网格***还包括第三节点,所述第三节点包括第三主机,所述第三主机和所述第一主机接入所述网络,所述第一主机上运行有第一应用,所述第三主机上运行有第二应用;
所述方法还包括:
所述第一主机获取所述第一应用针对所述第二应用的网络地址的第三访问请求,确认所述第一主机未运行有所述第二应用的情况下,通过所述网络发送所述第三访问请求;
所述第三主机接收所述第一主机发送的所述第三访问请求,并将所述第三访问请求发送至所述第二应用。
16.根据权利要求10-14任一项所述的方法,其特征在于,所述第一主机上运行有第一应用和第二应用;
所述方法还包括:
所述第一主机获取所述第一应用针对所述第二应用的网络地址的第三访问请求,确认所述第一主机运行有所述第二应用的情况下,发送所述第三访问请求至所述第二应用。
17.根据权利要求10-14任一项所述的方法,其特征在于,所述服务网格***还包括第三节点,所述第三节点包括第三主机、第三数据卡,所述第三数据卡插置于所述第三主机,所述第三数据卡与所述第三主机设置有第三数据通道,所述第三主机上运行有第四容器组,所述第四容器组中设置有第四微服务,所述第三数据卡和所述第一主机接入所述网络,所述第一主机上运行有第一应用;
所述方法还包括:
所述第一主机获取所述第一应用针对所述第三数据卡的网络地址的第四访问请求,并通过所述网络发送所述第四访问请求;
所述第三数据卡接收所述第一主机发送的所述第四访问请求,并根据所述第四访问请求携带的所述第四微服务的标识,通过所述第三数据通道发送所述第四访问请求至所述第四微服务。
18.根据权利要求10-14任一项所述的方法,其特征在于,所述服务网格***还包括第三节点,所述第三节点包括第三主机,所述第三主机上运行有第三应用,所述第三主机接入所述网络;
所述方法还包括:
所述第一主机获取所述第一微服务针对第三应用的网络地址的第五访问请求,并通过所述第一数据通道发送所述第五访问请求至所述第一数据卡;
所述第一数据卡通过网络发送所述第五访问请求;
所述第三主机接收所述第五访问请求,并将所述第五访问请求发送至所述第三应用。
CN202011641555.6A 2020-09-29 2020-12-31 基于微服务的服务网格***及服务治理方法 Pending CN114327850A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP21874416.7A EP4209905A4 (en) 2020-09-29 2021-09-27 SERVICE MESH SYSTEM USING MICROSERVICE, AND SERVICE GOVERNANCE METHOD
JP2023519553A JP2023543831A (ja) 2020-09-29 2021-09-27 マイクロサービスベースのサービスメッシュシステムおよびサービス指向アーキテクチャ管理方法
PCT/CN2021/120838 WO2022068756A1 (zh) 2020-09-29 2021-09-27 基于微服务的服务网格***及服务治理方法
US18/192,082 US20230239326A1 (en) 2020-09-29 2023-03-29 Microservice-Based Service Mesh System and Service Oriented Architecture Governance Method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2020110502495 2020-09-29
CN202011050249 2020-09-29

Publications (1)

Publication Number Publication Date
CN114327850A true CN114327850A (zh) 2022-04-12

Family

ID=81032325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011641555.6A Pending CN114327850A (zh) 2020-09-29 2020-12-31 基于微服务的服务网格***及服务治理方法

Country Status (1)

Country Link
CN (1) CN114327850A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024061189A1 (zh) * 2022-09-19 2024-03-28 华为云计算技术有限公司 一种服务网格***以及基于服务网格***的信息传输方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024061189A1 (zh) * 2022-09-19 2024-03-28 华为云计算技术有限公司 一种服务网格***以及基于服务网格***的信息传输方法

Similar Documents

Publication Publication Date Title
US20220294885A1 (en) Technologies for network packet processing between cloud and telecommunications networks
WO2022068756A1 (zh) 基于微服务的服务网格***及服务治理方法
WO2021207922A1 (zh) 报文传输方法、装置及***
CN108111523B (zh) 数据传输方法和装置
US10038668B2 (en) Computerized system and method for handling network traffic
WO2019085853A1 (en) Method and system for supporting multiple qos flows for unstructured pdu sessions
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
CN110505244B (zh) 远程隧道访问技术网关以及服务器
US20070168475A1 (en) Dynamic services blade and method
US20230006884A1 (en) Providing Interface Between Network Management and Slice Management
US8539089B2 (en) System and method for vertical perimeter protection
CN108964880A (zh) 一种数据传输方法及装置
US20230156828A1 (en) Session establishment method and apparatus, system, and computer storage medium
WO2023151264A1 (zh) 负载均衡方法、装置、节点及存储介质
WO2024067338A1 (zh) 云组网***、安全访问方法、设备及存储介质
CN116326199A (zh) 无线接入节点装置和由无线接入节点装置执行的接口方法
US7580410B2 (en) Extensible protocol processing system
CN114327850A (zh) 基于微服务的服务网格***及服务治理方法
US20230362215A1 (en) Radio access network system
CN114697387A (zh) 数据包传输方法、装置及存储介质
CN110661728A (zh) 多虚通道传输时共享与私有相结合的缓冲设计方法与装置
CN110519169B (zh) 一种应用层复用网络报文头部的方法
CN113676544A (zh) 一种云存储网络和在实体服务器中实现业务隔离的方法
CN114826898A (zh) 跨主机通信方法、装置、设备、***及可读存储介质
CN113709015A (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