CN116192863B - 微服务流量处理方法、dpu服务网格部署方法及系统 - Google Patents
微服务流量处理方法、dpu服务网格部署方法及系统 Download PDFInfo
- Publication number
- CN116192863B CN116192863B CN202310081443.7A CN202310081443A CN116192863B CN 116192863 B CN116192863 B CN 116192863B CN 202310081443 A CN202310081443 A CN 202310081443A CN 116192863 B CN116192863 B CN 116192863B
- Authority
- CN
- China
- Prior art keywords
- service
- service grid
- grid data
- micro
- data
- 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 79
- 238000005111 flow chemistry technique Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000004891 communication Methods 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims description 25
- 238000003672 processing method Methods 0.000 claims description 13
- 238000011217 control strategy Methods 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 10
- 230000009977 dual effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- -1 AWS Nitro Chemical class 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 125000000449 nitro group Chemical class [O-][N+](*)=O 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种微服务流量处理方法、DPU服务网格部署方法及系统,方法包括:在自身所在工作节点中与互为备份的其他服务网格数据面组件分别接收控制面发送的配置信息;接收主机侧的微服务流量数据并动态建立TCP会话数据,根据配置信息处理微服务流量数据;将TCP会话数据发送至互为备份的其他服务网格数据面组件中存储,接收并存储互为备份的其他服务网格数据面组件发送的TCP会话数据。本申请通过部署多服务网格数据面组件,能够有效保证主机侧微服务与外部的通信可靠性,并能够有效提高服务网格的资源利用率,并能够提高DPU侧服务网格的应用可靠性及稳定性,满足高可靠性、低时延的场景应用需求。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及微服务流量处理方法、DPU服务网格部署方法及系统。
背景技术
服务网格(Service Mesh)是云服务中的一个基础设施层,专注于实现微服务间服务请求的可靠传递,并在其基础上提供服务发现、负载均衡、请求路由和规则配置等流量控制层面操作。在服务网格中,原生的七层代理,例如共享代理容器Envoy,也即一种常见的服务网格数据面组件,它能够提供动态服务发现以及负载均衡的能力,同时支持TLS连接,可以代理HTTP/1.1&HTTP/2&gRPC等协议。同时支持熔断器、流量拆分及故障注入等能力和丰富的度量指标。引入服务网格数据面组件后,微服务只需关注业务本身处理,不需要对网络功能、负载均衡等进行处理,大幅降低了业务开发周期和成本。相应的,七层代理会消耗CPU的算力来处理网络协议等基础设施层服务,增加数据转发时延。目前,业界开始尝试在DPU(Data Process Unit)智能网卡将七层代理以网关模式卸载到智能网卡的ARM核上,需采用八个ARM核中的六个来做七层代理卸载以支持100G网卡上的流量。
在实践中,微服务应用部署在主机侧;服务网格部署在DPU上,对应用程序透明,负责微服务对外通信。用户将服务通信及相关管控功能从业务中分离到基础设施层服务网格上,使其和业务系统完全解耦。如图1所示,以基于DPU的用于连接、管理和保护微服务的开放平台Istio和共享代理容器Envoy的分布式云原生服务网格实现为例,对DPU上服务网格进行简单描述。Istio Control Plane是常见的服务网格控制面。服务网格控制面的进程通过K8s服务(Kubernetes service)API获取K8s集群(Kubernetescluster)的全量动态部署和CRD配置,并发送相关流量控制策略等配置到DPU上服务Envoy。Envoy根据接收到的监听、路由、节点、权重等配置信息对服务请求进行实际的流量转发。
然而,当前的方法中存在较为明显的缺点:在DPU上部署的服务网格,其上存放控制面下发的策略等配置信息,用于对出入主机侧微服务流量控制及转发;同时还存放动态数据,如服务网格与微服务间、以及它与外部服务间的TCP会话(TCP Session)信息。如果服务网格失效了,主机侧的微服务与外部无法进行通信,此时到达DPU的流量也会被丢掉。服务网格恢复后,也需要先从控制面拉取配置,并与微服务及外部重新建立TCP连接后,流量才能够被正确分发与转发。此过程耗时较长(秒级以上),无法满足高可靠性、低时延需求,如5G通信、线上快速交易等相关场景。
发明内容
鉴于此,本申请实施例提供了微服务流量处理方法、DPU服务网格部署方法及系统,以消除或改善现有技术中存在的一个或更多个缺陷。
本申请的一个方面提供了一种微服务流量处理方法,包括:
在自身所在的DPU对应的K8s集群内的工作节点中,与自身互为备份的其他服务网格数据面组件分别接收控制面发送的配置信息;
接收主机侧的微服务流量数据并动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据,其中,所述DPU中的各个所述服务网格数据面组件分别用于处理主机侧不同的微服务流量数据;
将所述TCP会话数据发送至与自身互为备份的其他服务网格数据面组件中进行存储,以及,接收并存储与自身互为备份的其他服务网格数据面组件发送的TCP会话数据。
在本申请的一些实施例中,还包括:
若与自身互为备份的其他服务网格数据面组件当前处于失效状态,则在本地调取预存储的失效的服务网格数据面组件对应的TCP会话数据,代为处理该失效的服务网格数据面组件的微服务流量数据。
在本申请的一些实施例中,还包括:
若与自身互为备份的其他服务网格数据面组件从所述失效状态变更为有效状态,则将本地预存储的该服务网格数据面组件的TCP会话数据和所述配置信息发送至该服务网格数据面组件,以使该服务网格数据面组件恢复处理对应的微服务流量数据。
在本申请的一些实施例中,所述配置信息包括:流量控制策略。
本申请的另一个方面提供了一种DPU服务网格部署方法,包括:
在DPU对应的K8s集群内的各个工作节点中分别部署互为备份的至少两个服务网格数据面组件,且每个所述服务网格数据面组件均接收并存储控制面发送的配置信息;
将各个所述服务网格数据面组件分别与主机侧不同的微服务进行绑定,以使各个所述服务网格数据面组件分别基于自身对应的微服务流量数据动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据;
将每个所述服务网格数据面组件动态建立的TCP会话数据均发送至与该服务网格数据面组件互为主备的其他服务网格数据面组件中进行存储,以在任一服务网格数据面组件失效时,由与失效的服务网格数据面组件互为备份的其他服务网格数据面组件代为处理该失效的服务网格数据面组件对应的微服务流量数据。
在本申请的一些实施例中,所述DPU服务网格部署方法还包括:
若原失效服务网格数据面组件当前从失效状态变更为有效状态,则代为处理该原失效服务网格数据面组件的微服务流量数据的另一服务网格数据面组件,将本地预存储的该原失效服务网格数据面组件的TCP会话数据和所述配置信息发送至该原失效服务网格数据面组件,以使该原失效服务网格数据面组件恢复处理对应的微服务流量数据。
本申请的第三个方面提供了一种服务网格数据面组件,包括:
配置信息接收模块,用于在自身所在的DPU对应的K8s集群内的工作节点中,与自身互为备份的其他服务网格数据面组件分别接收控制面发送的配置信息;
微服务流量处理模块,用于接收主机侧的微服务流量数据并动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据,其中,所述DPU中的各个所述服务网格数据面组件分别用于处理主机侧不同的微服务流量数据;
TCP会话备份模块,用于将所述TCP会话数据发送至与自身互为备份的其他服务网格数据面组件中进行存储,以及,接收并存储与自身互为备份的其他服务网格数据面组件发送的TCP会话数据。
在本申请的一些实施例中,所述服务网格数据面组件还包括:
备份接管模块,用于若与自身互为备份的其他服务网格数据面组件当前处于失效状态,则在本地调取预存储的失效的服务网格数据面组件对应的TCP会话数据,代为处理该失效的服务网格数据面组件的微服务流量数据。
在本申请的一些实施例中,所述服务网格数据面组件还包括:
恢复处理模块,用于若与自身互为备份的其他服务网格数据面组件从所述失效状态变更为有效状态,则将本地预存储的该服务网格数据面组件的TCP会话数据和所述配置信息发送至该服务网格数据面组件,以使该服务网格数据面组件恢复处理对应的微服务流量数据。
本申请的第四个方面提供了一种DPU服务网格部署系统,包括:
分别部署在DPU对应的K8s集群内的各个工作节点中的互为备份的至少两个服务网格数据面组件,且每个所述服务网格数据面组件分别与自身对应的至少一个微服务之间通信连接;
各个所述服务网格数据面组件分别与控制面之间通信连接,且每个所述服务网格数据面组件均用于执行所述的微服务流量处理方法。
本申请提供的微服务流量处理方法,通过在自身所在的DPU对应的K8s集群内的工作节点中,与自身互为备份的其他服务网格数据面组件分别接收控制面发送的配置信息;接收主机侧的微服务流量数据并动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据,其中,所述DPU中的各个所述服务网格数据面组件分别用于处理主机侧不同的微服务流量数据;将所述TCP会话数据发送至与自身互为备份的其他服务网格数据面组件中进行存储,以及,接收并存储与自身互为备份的其他服务网格数据面组件发送的TCP会话数据,通过部署多服务网格数据面组件,能够有效保证主机侧微服务与外部的通信可靠性,并能够有效提高服务网格的资源利用率,并能够提高DPU侧服务网格的应用可靠性及稳定性,满足高可靠性、低时延的场景应用需求。
本申请的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本申请的实践而获知。本申请的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
本领域技术人员将会理解的是,能够用本申请实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本申请能够实现的上述和其他目的。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。附图中的部件不是成比例绘制的,而只是为了示出本申请的原理。为了便于示出和描述本申请的一些部分,附图中对应部分可能被放大,即,相对于依据本申请实际制造的示例性装置中的其它部件可能变得更大。在附图中:
图1为基于Istio的分布式云原生服务网格的举例示意图。
图2为本申请一实施例中的微服务流量处理方法的第一种流程示意图。
图3为本申请一实施例中的微服务流量处理方法的第二种流程示意图。
图4为本申请另一实施例中的DPU服务网格部署方法的流程示意图。
图5为本申请另一实施例中的服务网格数据面组件的第一种结构示意图。
图6为本申请另一实施例中的服务网格数据面组件的第二种结构示意图。
图7为本申请应用实例中的DPU上双主服务网格卸载方案对应的DPU服务网格部署系统的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本申请做进一步详细说明。在此,本申请的示意性实施方式及其说明用于解释本申请,但并不作为对本申请的限定。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本申请,在附图中仅仅示出了与根据本申请的方案密切相关的结构和/或处理步骤,而省略了与本申请关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
在下文中,将参考附图描述本申请的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
数据处理单元或专用数据处理器DPU(Data Processing Unit)是以数据为中心、I/O密集型、采用软件定义技术路线支撑基础设施资源层虚拟化,具备提升计算系统效率、降低整体系统的总拥有成本,并提高数据处理效能、降低其他计算芯片性能损耗的新一代计算芯片。DPU最直接的作用是作为CPU的卸载引擎,接管网络虚拟化、硬件资源池化等基础设施层服务,释放CPU的算力到上层应用。以网络协议处理为例,要线速处理10G的网络需要的大约四个Xeon CPU的核,也就是说,单是做网络数据包处理,就可以占去一个八核高端CPU一半的算力。如果考虑40G、100G的高速网络,性能的开销就更加难以承受了。Amazon把这些开销都称之为“数据中心税(Datacenter Tax)”,即还未运行业务程序,先接入网络数据就要占去的计算资源。AWS Nitro产品家族旨在将数据中心开销(为虚拟机提供远程资源,加密解密,故障跟踪,安全策略等服务程序)全部从CPU卸载到Nitro加速卡上,将给上层应用释放30%的原本用于支付“数据中心税”的算力。
发明人服务网格研究时发现,原生服务网格集中部署在主机侧时,并未考虑到服务网格可靠性问题,在集中式服务网格如Envoy故障时,会存在网络中断,流量丢包的问题。Istio是常见的服务网格控制面,Envoy是常见的服务网格数据面,它们的部署基于Kubenetes网格架构,Kubenetes本身没有提供网关可靠性技术,出现问题重启容器来实现业务的恢复。服务网格集式部署并不通用,通用作法是在每个pod里部署sidecar容器来实现流量劫持、负载均衡、策略等服务。那么每台服务器上有多个(通常110个)pod的话,需要部署110个sidecar,已消耗了大量的CPU处理,不会再消耗更多的资源做可靠性保障。但服务网格卸载到DPU上,与pod是分离部署,只能从sidecar模式演变成集中式部署模式。需要对Kubenetes构架做二次开发才能支持DPU模式上部署服务网格,并加之DPU上资源有限,服务网格可靠性的问题并没有被解决。
发明人经过对可靠性技术的研究发现,达到高可靠性需求的同时,可以通过部署双服务网格(或多服务网格)的方法,相互作为对方的备份的方法来实现。把原来由单个服务网格处理的流量分流到两个服务网格中处理,仅在管理上会消耗有限的资源即可。每个服务网格都接受控制面发来的策略等配置信息,处理流量分发与转发;把各自建立的TCPSession备份给对方。在某一个服务网格失效时,另一个可处理所有的流量,因为它有所有的配置以及所有的TCP Session信息。不需要再从控制面拉取配置,也不需要重新与流量相关微服务建立TCP Session,从而做到提高资源利用率的同时达到高可靠性的需求。失效的服务网格重启后,可从另一服务网格备份信息恢复其失效前的配置及TCP Session,继续承担失效前的流量转发,并作为另一服务网格的备份。
基于此,本申请的目的是解决现在DPU上服务网格可靠性问题,提出了一种DPU上高可靠性的多主服务网格部署方式,能快速探测某服务网格失效,并且可以快速恢复微服务业务。
具体通过下述实施例进行详细说明。
本申请实施例提供一种微服务流量处理方法,参见图2,可以由服务网格数据面组件Envoy执行的所述微服务流量处理方法具体包含有如下内容:
步骤100:在自身所在的DPU对应的K8s集群内的工作节点中,与自身互为备份的其他服务网格数据面组件分别接收控制面发送的配置信息。
在本申请的一个或多个实施例中,每个所述工作节点(worker node)中均至少包含有两个服务网格数据面组件,即:双主服务网格。其中,所述服务网格数据面组件可以称之为共享代理容器Envoy。
可以理解的是,所述配置信息是指服务网格数据面组件处理微服务流量数据的依据,每一个服务网格数据面组件均接收全量的配置信息。以双主服务网格为例,双主服务网格都接收控制面下发的配置,各自都在全量的配置,无需进行备份。
步骤200:接收主机侧的微服务流量数据并动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据,其中,所述DPU中的各个所述服务网格数据面组件分别用于处理主机侧不同的微服务流量数据。
在步骤200中,为达到高利用率,各个服务网格数据面组件分开处理不同的微服务请求及流量转发。以双主服务网格为例,服务网格数据面组件Envoy1处理微服务A的服务请求及流量转发;服务网格数据面组件Envoy2处理微服务B和微服务C的服务请求及流量转发。
步骤300:将所述TCP会话数据发送至与自身互为备份的其他服务网格数据面组件中进行存储,以及,接收并存储与自身互为备份的其他服务网格数据面组件发送的TCP会话数据。
在步骤300中,互为备份的服务网格数据面组件把动态建立的TCP会话(TCPSession)信息备份到对方。以双主服务网格为例,服务网格数据面组件Envoy1收到微服务A的流量时,与之建立起相应的TCP会话(TCP Session)A1;收到微服务B的流量时,建立TCP会话(TCP Session)B2。然后把TCP会话(TCP Session)A1和TCP会话(TCP Session)B2备份给服务网格数据面组件Envoy2。服务网格数据面组件Envoy2仅有Session信息,微服务A与微服务B流量仍由服务网格数据面组件Envoy1处理。反之亦然,服务网格数据面组件Envoy2把微服务C和D的TCP会话(TCP Session)C3和TCP会话(TCP Session)D4信息备份到服务网格数据面组件Envoy1。
通过步骤300的设置,在双服务网格都有效时,双方处理不同微服务请求。某中一个失效时,另一服务网格收发全部微服务业务流量,因其有全部配置及全部TCP会话(TCPSession)信息,可以对流量做正确的策略控制及转发。
从上述描述可知,本申请实施例提供的微服务流量处理方法,通过部署多服务网格数据面组件,能够有效保证主机侧微服务与外部的通信可靠性,并能够有效提高服务网格的资源利用率,并能够提高DPU侧服务网格的应用可靠性及稳定性,满足高可靠性、低时延的场景应用需求。
为了进一步提高微服务流量处理的效率及可靠性,在本申请实施例提供的一种微服务流量处理方法中,参见图3,所述微服务流量处理方法中的步骤300之后还具体包含有如下内容:
步骤400:若与自身互为备份的其他服务网格数据面组件当前处于失效状态,则在本地调取预存储的失效的服务网格数据面组件对应的TCP会话数据,代为处理该失效的服务网格数据面组件的微服务流量数据。
为了进一步提高微服务流量处理的效率及可靠性,在本申请实施例提供的一种微服务流量处理方法中,参见图3,所述微服务流量处理方法中的步骤400之后还具体包含有如下内容:
步骤500:若与自身互为备份的其他服务网格数据面组件从所述失效状态变更为有效状态,则将本地预存储的该服务网格数据面组件的TCP会话数据和所述配置信息发送至该服务网格数据面组件,以使该服务网格数据面组件恢复处理对应的微服务流量数据。
为了进一步提高微服务流量处理的可靠性,在本申请实施例提供的一种微服务流量处理方法中,所述配置信息包括:流量控制策略。
进一步来说,本申请实施例还提供一种DPU服务网格部署方法,该DPU服务网格部署方法可以在微服务流量处理方法的步骤100之前执行,参见图4,所述DPU服务网格部署方法具体包含有如下内容:
步骤010:在DPU对应的K8s集群内的各个工作节点中分别部署互为备份的至少两个服务网格数据面组件,且每个所述服务网格数据面组件均接收并存储控制面发送的配置信息。
步骤020:将各个所述服务网格数据面组件分别与主机侧不同的微服务进行绑定,以使各个所述服务网格数据面组件分别基于自身对应的微服务流量数据动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据。
步骤030:将每个所述服务网格数据面组件动态建立的TCP会话数据均发送至与该服务网格数据面组件互为主备的其他服务网格数据面组件中进行存储,以在任一服务网格数据面组件失效时,由与失效的服务网格数据面组件互为备份的其他服务网格数据面组件代为处理该失效的服务网格数据面组件对应的微服务流量数据。
为了进一步提高微服务流量处理的效率及可靠性,若原失效服务网格数据面组件当前从失效状态变更为有效状态,则代为处理该原失效服务网格数据面组件的微服务流量数据的另一服务网格数据面组件,将本地预存储的该原失效服务网格数据面组件的TCP会话数据和所述配置信息发送至该原失效服务网格数据面组件,以使该原失效服务网格数据面组件恢复处理对应的微服务流量数据。
从上述描述可知,本申请实施例提供的微服务流量处理方法,通过部署多服务网格数据面组件,能够有效保证主机侧微服务与外部的通信可靠性,并能够有效提高服务网格的资源利用率,并能够提高DPU侧服务网格的应用可靠性及稳定性,满足高可靠性、低时延的场景应用需求。
从软件层面来说,本申请还提供一种用于执行所述微服务流量处理方法中全部或部分内的服务网格数据面组件,参见图5,所述服务网格数据面组件具体包含有如下内容:
配置信息接收模块10,用于在自身所在的DPU对应的K8s集群内的工作节点中,与自身互为备份的其他服务网格数据面组件分别接收控制面发送的配置信息。
微服务流量处理模块20,用于接收主机侧的微服务流量数据并动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据,其中,所述DPU中的各个所述服务网格数据面组件分别用于处理主机侧不同的微服务流量数据。
TCP会话备份模块30,用于将所述TCP会话数据发送至与自身互为备份的其他服务网格数据面组件中进行存储,以及,接收并存储与自身互为备份的其他服务网格数据面组件发送的TCP会话数据。
为了进一步提高微服务流量处理的效率及可靠性,在本申请实施例提供的一种服务网格数据面组件中,参见图6,所述服务网格数据面组件还具体包含有如下内容:
备份接管模块40,用于若与自身互为备份的其他服务网格数据面组件当前处于失效状态,则在本地调取预存储的失效的服务网格数据面组件对应的TCP会话数据,代为处理该失效的服务网格数据面组件的微服务流量数据。
恢复处理模块50,用于若与自身互为备份的其他服务网格数据面组件从所述失效状态变更为有效状态,则将本地预存储的该服务网格数据面组件的TCP会话数据和所述配置信息发送至该服务网格数据面组件,以使该服务网格数据面组件恢复处理对应的微服务流量数据。
本申请提供的服务网格数据面组件的实施例具体可以用于执行上述实施例中的微服务流量处理方法的实施例的处理流程,其功能在此不再赘述,可以参照上述微服务流量处理方法实施例的详细描述。
从上述描述可知,本申请实施例提供的服务网格数据面组件,能够有效保证主机侧微服务与外部的通信可靠性,并能够有效提高服务网格的资源利用率,并能够提高DPU侧服务网格的应用可靠性及稳定性,满足高可靠性、低时延的场景应用需求。
基于上述实施例提供的微服务流量处理方法和/或服务网格数据面组件,本申请实施例还提供一种DPU服务网格系统,DPU服务网格系统具体包含有如下内容:
分别部署在DPU对应的K8s集群内的各个工作节点中的互为备份的至少两个服务网格数据面组件,且每个所述服务网格数据面组件分别与自身对应的至少一个微服务之间通信连接;
各个所述服务网格数据面组件分别与控制面之间通信连接,且每个所述服务网格数据面组件均用于执行所述微服务流量处理方法。
为了进一步说明本方案,本申请还提供一种微服务流量处理方法及DPU服务网格部署方法(即:基于DPU高可靠性服务网格部署方法)的具体应用实例,具体涉及应用于DPU领域双主服务网格的高可靠性卸载方法。
(一)基于DPU高可靠性服务网格部署方法流程如下:
S1.参见图7,在DPU上部署双主服务网格形成DPU服务网格部署系统,即每个工作节点(worker node)中的服务网格数据面组件Envoy1和服务网格数据面组件Envoy2;
S2.双服务网格数据面组件可批量及实时备份数据到对方;
S2.1某一服务网格数据面组件Envoy2第一次启动或是重启,服务网格数据面组件Envoy1批量备份当前TCP会话(TCP Session)信息到备服务网格数据面组件;
S2.2双方同步后,TCP会话(TCP Session)变化信息可实时备份到对方;
S3.监测到某服务网格数据面组件失效后,把全部微服务流量都导到另一个服务网格数据面组件上;
S4.服务网格数据面组件接收全部微服务流量,根据策略控制流量分发及转发;
S5.重启失效服务网格数据面组件或是新启一个服务网格数据面组件。
(二)DPU服务网格部署系统
(1)双主服务网格接收控制面下发的配置
效果:双服务网格都接收控制面下发的配置,各自都在全量的配置,无需进行备份。
(2)双服务网格分开处理不同微服务请求及流量转发
为达到高利用率,双服务网格分开处理不同的微服务请求及流量转发。服务网格数据面组件Envoy1处理微服务A(微服务A容器D1和微服务A容器D2)服务请求及流量转发;服务网格数据面组件Envoy2处理微服务B和微服务C的。
(3)双主服务网格把动态建立的TCP会话(TCP Session)信息到备份到对方
服务网格数据面组件Envoy1收到微服务A的流量时,与之建立起相应的TCP会话(TCP Session)A1;收到微服务B的流量时,建立TCP会话(TCP Session)B2。然后把TCP会话(TCP Session)A1和TCP会话(TCP Session)B2备份给服务网格数据面组件Envoy2。服务网格数据面组件Envoy2仅有Session信息,微服务A与微服务B流量仍由服务网格数据面组件Envoy1处理。反之亦然,服务网格数据面组件Envoy2把微服务C和D的TCP会话(TCPSession)C3和TCP会话(TCP Session)D4信息备份到服务网格数据面组件Envoy1。
(4)某服务网格失效后,另一服务网格接管所有微服务请求,直到它重启生效
在双服务网格都有效时,双方处理不同微服务请求。某中一个失效时,另一服务网格收发全部微服务业务流量,因其有全部配置及全部TCP会话(TCP Session)信息,可以对流量做正确的策略控制及转发。
综上所述,本方法通过部署双主服务网格,都可接收控制面配置并各自处理不同微服务流量,把动态建立的TCP会话(TCP Session)备份给对方。在某一个服务网格失效后,另一个可处理所有微服务的业务流量进行策略控制和流量转发,因其有全部的配置及TCP会话(TCP Session)信息,无需从控制面拉取配置,也无需重建耗时的TCP会话(TCPSession)连接,即充分利用每一个服务网格资源,又能避免某一服务网格失效后的大量丢包,以达成高可靠性及低时延的需求。
本申请实施例还提供了一种电子设备,该电子设备可以包括处理器、存储器、接收器及发送器,处理器用于执行上述实施例提及的DPU服务网格部署方法,其中处理器和存储器可以通过总线或者其他方式连接,以通过总线连接为例。该接收器可通过有线或无线方式与处理器、存储器连接。所述电子设备可自所述无线多媒体传感器网络中的传感器接收实时运动数据,并自所述视频采集装置接收原始视频序列。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的微服务流量处理方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的DPU服务网格部署方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器中,当被所述处理器执行时,执行实施例中的DPU服务网格部署方法。
在本申请的一些实施例中,用户设备可以包括处理器、存储器和收发单元,该收发单元可包括接收器和发送器,处理器、存储器、接收器和发送器可通过总线系统连接,存储器用于存储计算机指令,处理器用于执行存储器中存储的计算机指令,以控制收发单元收发信号。
作为一种实现方式,本申请中接收器和发送器的功能可以考虑通过收发电路或者收发的专用芯片来实现,处理器可以考虑通过专用处理芯片、处理电路或通用芯片实现。
作为另一种实现方式,可以考虑使用通用计算机的方式来实现本申请实施例提供的服务器。即将实现处理器,接收器和发送器功能的程序代码存储在存储器中,通用处理器通过执行存储器中的代码来实现处理器,接收器和发送器的功能。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述DPU服务网格部署方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
本申请中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种微服务流量处理方法,其特征在于,由一服务网格数据面组件执行,所述微服务流量处理方法包括:
在自身所在的DPU对应的K8s集群内的工作节点中,与自身互为备份的其他服务网格数据面组件分别接收控制面发送的配置信息,其中,在DPU对应的K8s集群内的各个工作节点中分别预先部署有互为备份的至少两个服务网格数据面组件;
接收主机侧的微服务流量数据并动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据,其中,所述DPU中的各个所述服务网格数据面组件分别用于处理主机侧不同的微服务流量数据;
将所述TCP会话数据发送至与自身互为备份的其他服务网格数据面组件中进行存储,以及,接收并存储与自身互为备份的其他服务网格数据面组件发送的TCP会话数据。
2.根据权利要求1所述的微服务流量处理方法,其特征在于,还包括:
若与自身互为备份的其他服务网格数据面组件当前处于失效状态,则在本地调取预存储的失效的服务网格数据面组件对应的TCP会话数据,代为处理该失效的服务网格数据面组件的微服务流量数据。
3.根据权利要求2所述的微服务流量处理方法,其特征在于,还包括:
若与自身互为备份的其他服务网格数据面组件从所述失效状态变更为有效状态,则将本地预存储的该服务网格数据面组件的TCP会话数据和所述配置信息发送至该服务网格数据面组件,以使该服务网格数据面组件恢复处理对应的微服务流量数据。
4.根据权利要求1至3任一项所述的微服务流量处理方法,其特征在于,所述配置信息包括:流量控制策略。
5.一种DPU服务网格部署方法,其特征在于,包括:
在DPU对应的K8s集群内的各个工作节点中分别部署互为备份的至少两个服务网格数据面组件,且每个所述服务网格数据面组件均接收并存储控制面发送的配置信息;
将各个所述服务网格数据面组件分别与主机侧不同的微服务进行绑定,以使各个所述服务网格数据面组件分别基于自身对应的微服务流量数据动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据;
将每个所述服务网格数据面组件动态建立的TCP会话数据均发送至与该服务网格数据面组件互为主备的其他服务网格数据面组件中进行存储,以在任一服务网格数据面组件失效时,由与失效的服务网格数据面组件互为备份的其他服务网格数据面组件代为处理该失效的服务网格数据面组件对应的微服务流量数据。
6.根据权利要求5所述的DPU服务网格部署方法,其特征在于,还包括:
若原失效服务网格数据面组件当前从失效状态变更为有效状态,则代为处理该原失效服务网格数据面组件的微服务流量数据的另一服务网格数据面组件,将本地预存储的该原失效服务网格数据面组件的TCP会话数据和所述配置信息发送至该原失效服务网格数据面组件,以使该原失效服务网格数据面组件恢复处理对应的微服务流量数据。
7.一种服务网格数据面组件,其特征在于,包括:
配置信息接收模块,用于在自身所在的DPU对应的K8s集群内的工作节点中,与自身互为备份的其他服务网格数据面组件分别接收控制面发送的配置信息,其中,在DPU对应的K8s集群内的各个工作节点中分别预先部署有互为备份的至少两个服务网格数据面组件;
微服务流量处理模块,用于接收主机侧的微服务流量数据并动态建立TCP会话数据,并根据所述配置信息处理对应的微服务流量数据,其中,所述DPU中的各个所述服务网格数据面组件分别用于处理主机侧不同的微服务流量数据;
TCP会话备份模块,用于将所述TCP会话数据发送至与自身互为备份的其他服务网格数据面组件中进行存储,以及,接收并存储与自身互为备份的其他服务网格数据面组件发送的TCP会话数据。
8.根据权利要求7所述的服务网格数据面组件,其特征在于,还包括:
备份接管模块,用于若与自身互为备份的其他服务网格数据面组件当前处于失效状态,则在本地调取预存储的失效的服务网格数据面组件对应的TCP会话数据,代为处理该失效的服务网格数据面组件的微服务流量数据。
9.根据权利要求8所述的服务网格数据面组件,其特征在于,还包括:
恢复处理模块,用于若与自身互为备份的其他服务网格数据面组件从所述失效状态变更为有效状态,则将本地预存储的该服务网格数据面组件的TCP会话数据和所述配置信息发送至该服务网格数据面组件,以使该服务网格数据面组件恢复处理对应的微服务流量数据。
10.一种DPU服务网格系统,其特征在于,包括:
分别部署在DPU对应的K8s集群内的各个工作节点中的互为备份的至少两个服务网格数据面组件,且每个所述服务网格数据面组件分别与自身对应的至少一个微服务之间通信连接;
各个所述服务网格数据面组件分别与控制面之间通信连接,且每个所述服务网格数据面组件均用于执行权利要求1至4任一项所述的微服务流量处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310081443.7A CN116192863B (zh) | 2023-01-13 | 2023-01-13 | 微服务流量处理方法、dpu服务网格部署方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310081443.7A CN116192863B (zh) | 2023-01-13 | 2023-01-13 | 微服务流量处理方法、dpu服务网格部署方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116192863A CN116192863A (zh) | 2023-05-30 |
CN116192863B true CN116192863B (zh) | 2023-11-28 |
Family
ID=86450152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310081443.7A Active CN116192863B (zh) | 2023-01-13 | 2023-01-13 | 微服务流量处理方法、dpu服务网格部署方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192863B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117061338B (zh) * | 2023-08-16 | 2024-06-07 | 中科驭数(北京)科技有限公司 | 基于多网卡的服务网格数据处理方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112637335A (zh) * | 2020-12-22 | 2021-04-09 | 新华三大数据技术有限公司 | 主备模式服务部署方法、装置、设备及存储介质 |
CN112965847A (zh) * | 2021-03-03 | 2021-06-15 | 北京百度网讯科技有限公司 | 微服务架构的故障处理方法、装置、设备以及存储介质 |
CN113542437A (zh) * | 2021-09-16 | 2021-10-22 | 阿里云计算有限公司 | 网络系统、网络代理方法及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11635995B2 (en) * | 2019-07-16 | 2023-04-25 | Cisco Technology, Inc. | Systems and methods for orchestrating microservice containers interconnected via a service mesh in a multi-cloud environment based on a reinforcement learning policy |
EP4245057A1 (en) * | 2020-11-16 | 2023-09-20 | Juniper Networks, Inc. | Active assurance for virtualized services |
-
2023
- 2023-01-13 CN CN202310081443.7A patent/CN116192863B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112637335A (zh) * | 2020-12-22 | 2021-04-09 | 新华三大数据技术有限公司 | 主备模式服务部署方法、装置、设备及存储介质 |
CN112965847A (zh) * | 2021-03-03 | 2021-06-15 | 北京百度网讯科技有限公司 | 微服务架构的故障处理方法、装置、设备以及存储介质 |
CN113542437A (zh) * | 2021-09-16 | 2021-10-22 | 阿里云计算有限公司 | 网络系统、网络代理方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116192863A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116048538B (zh) | 用于dpu的服务网格部署方法及装置 | |
CN102880475B (zh) | 计算机软件系统中基于云计算的实时事件处理系统及方法 | |
US7844851B2 (en) | System and method for protecting against failure through geo-redundancy in a SIP server | |
CN101572709B (zh) | 套接字连接的切换方法、系统、服务器和客户端设备 | |
CN104811459A (zh) | 用于消息服务的处理方法、装置及系统、消息服务系统 | |
US11303737B2 (en) | Method and device for data transmission | |
CN112631788B (zh) | 数据传输方法及数据传输服务器 | |
US20220086262A1 (en) | Network packet processing method and apparatus and network server | |
CN110234140B (zh) | 一种通信方法、装置、实体及存储介质 | |
CN116886497B (zh) | 基于dpu的服务网格业务集中代理切换方法及处理系统 | |
CN104468151A (zh) | 一种集群切换时保持tcp会话的系统和方法 | |
CN110233851B (zh) | 一种数据传输方法和装置 | |
CN116192863B (zh) | 微服务流量处理方法、dpu服务网格部署方法及系统 | |
CN110868278B (zh) | 一种轨道交通综合监控系统通信前置机双机冗余的方法 | |
US8891538B2 (en) | State synchronization of serial data link sessions connected across an IP network | |
CN109151082A (zh) | 一种多连接建立方法、装置和系统 | |
CN106131162B (zh) | 一种基于iocp机制实现网络服务代理的方法 | |
CN102231126B (zh) | 一种实现多核处理器中核间备份的方法及系统 | |
CN104660550A (zh) | 一种在多服务器之间进行会话迁移的方法 | |
CN115801642B (zh) | 基于状态控制的rdma通讯管理模块、方法、设备及介质 | |
CN116010130B (zh) | Dpu虚拟口的跨卡链路聚合方法、装置、设备及介质 | |
TW202123731A (zh) | 多邊緣雲之網路通訊控制方法及邊緣運算裝置與系統 | |
CN107707546B (zh) | 一种报文复制方法及支持报文复制功能的新型网络适配器 | |
US20160006643A1 (en) | Communication system | |
CN115086617A (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 |