System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及云计算,特别涉及一种服务网格的治理系统及治理方法。
技术介绍
1、服务网格是用于微服务应用的可配置基础架构层,把微服务的各个服务(service)节点,用一张网格(mesh)连接起来,使每个服务实例之间的通信流畅、可靠和迅速。服务网格一般分为控制面和数据面,控制面进行规则控制,数据面处理流量转发等。目前存在的两种服务网格的数据面处理形态,一种为l4l7合一的模式,另一种为l4l7分离的模式。
2、l4l7分离模式的代表项目有ambient和cilium,对于cilium,l4治理模块被下沉到内核态中,而l7治理模块仍位于用户态中。在对应用数据进行服务治理的过程中,应用数据首先经由位于内核态的l4治理模块进行数据流量的l4治理,之后如果需要进行负载均衡等高级服务治理时,则需要将完整的应用数据从内核态拷贝到用户态,通过位于用户态的l7治理模块进行l7治理。由于需要对应用数据整体进行跨内核拷贝,会导致节点cpu占用率较高并且请求端到端时延较大。
技术实现思路
1、本申请实施例提供了一种服务网格的治理系统及治理方法,能够降低cpu的性能开销和应用的端到端请求时延,提高服务治理的效率。
2、第一方面,提供了一种服务网格的治理系统,包括:l4治理模块,运行于所述治理系统的内核态,用于向l7治理模块发送第一应用数据;所述l7治理模块,运行于所述治理系统的用户态,用于通过第一治理子模块对满足第一匹配条件的所述第一应用数据进行服务治理;识别模块,用于从所述l7治理模
3、根据本申请实施例提供的服务网格的治理系统,在应用连接建立后的一段时间保持完整的l4、l7处理路径,即,当确定第一应用数据需要进行高级服务治理时,l4治理模块可以将该第一应用数据从内核态拷贝至用户态,l7治理模块通过内部的第一治理子模块来对满足第一匹配条件的该第一应用数据进行服务治理。在按照上述正常路径处理一段时间以后,识别模块从l7治理模块中识别出该第一治理子模块,编译模块对该第一治理子模块进行编译以生成第二治理子模块,并且将该第二治理子模块注入到内核态,该第二治理子模块能够在内核态中运行,并且能够实现第一治理子模块的治理功能,即能够对满足该第一匹配条件的应用数据进行服务治理。
4、这样,当l4治理模块接收到满足该第一匹配条件的第二应用数据时,可以直接将该第二应用数据发送给位于内核态的第二治理子模块,以通过该第二治理子模块来对第二应用数据进行服务治理。使得第二应用数据无需通过l7治理模块来进行服务治理,即无需将第二应用数据从内核态拷贝到用户态。由此优化了数据传输路径,降低了节点的cpu的占用率以及端到端(即第一应用到第二应用)请求时延,提高了对应用数据的服务治理效率。
5、根据本申请实施例提供的服务网格的治理系统,在运行一段时间以后,大部分应用数据可以由内核态中的第二治理子模块来进行服务治理,在提升治理性能或治理效率的情况下,实现对对端无感的效果。
6、可选地,当确定预设的触发条件被满足(达到)时,编译模块才对第一治理子模块进行编译以生成第二治理子模块。例如,当确定预设的触发条件被满足时,识别模块才对第一治理子模块进行识别,编译模块才对识别到的第一治理子模块进行编译以生成第二治理子模块。
7、也就是说,可以设置一定的触发条件,当该触发条件被满足时,识别模块和编译模块才执行相应的识别和编译动作,本申请对触发条件的具体内容不做限定。
8、例如,考虑到实际的运行效率,当第一治理子模块治理的第一应用数据的数据量达到(大于或者等于)预设阈值的时候,上述触发条件被满足,识别模块和编译模块执行相应的识别和编译动作。
9、再例如,考虑到内核态的空间限制以及编译的工作量,当第一治理子模块治理的第一应用数据的数据量达到预设阈值,并且第一治理子模块的体积(例如所包含的程序量)小于或等于预设阈值的情况下,上述触发条件被满足,识别模块和编译模块执行相应的识别和编译动作。
10、再例如,还可以结合时间,在预设时长内第一应用数据的数据量达到预设阈值时,上述触发条件被满足,识别模块和编译模块执行相应的识别和编译动作。
11、在一种可能的实现方式中,所述识别模块具体用于:从所述l7治理模块的解码器、过滤器以及编码器中分别识别出解码器子模块、过滤器子模块以及编码器子模块,以获得所述第一治理子模块;所述编译模块具体用于:对所述解码器子模块、所述过滤器子模块以及所述编码器子模块分别进行编译,以生成能够在所述内核态运行的解码器可执行模块、过滤器可执行模块以及编码器可执行模块,进而获得所述第二治理子模块。
12、在一种可能的实现方式中,所述识别模块具体用于:根据对第一应用数据进行服务治理过程中的函数调用情况从所述过滤器中识别出所述过滤器子模块;根据所述过滤器子模块从所述解码器中识别出所述解码器子模块,其中,所述解码器子模块与所述过滤器子模块所处理的数据字段相同。
13、也就是说,过滤器子模块与应用数据中的特定字段相对应,用于对该特定字段进行服务治理,而解码器子模块与过滤器子模块相互对应,即解码器子模块的解码字段与过滤器子模块的治理字段是相同的,也就是说,解码器子模块可以只对应用数据中过滤器子模块所关心或者处理的字段进行解码,其他字段无需解码。以上设置的好处是,一方面降低了解码器子模块的体积,即降低了第一治理子模块的体积,从而能够降低编译的工作量。另一方面,对于根据第一治理子模块编译获得的第二治理子模块,在内核态中对第二应用数据进行服务治理时,可以仅对该特定字段进行解码,其他不相关的字段无需解码可以直接跳过,由此实现对应用数据的加速解码,能够大大提高第二治理子模块的治理效率,并且能够降低cpu的性能开销。
14、在一种可能的实现方式中,所述l7治理模块还用于:向所述第二治理子模块发送所述第一治理子模块的状态信息,所述状态信息用于对所述第二治理子模块进行状态初始化。
15、在一种可能的实现方式中,所述l7治理模块还用于:向所述第二治理子模块发送上下游关联信息,以使所述第二治理子模块根据所述上下游关联信息和第一连接转发所述第二应用数据,其中,所述第二治理子模块通过所述第一连接接收所述第二应用数据。
16、在一种可能的实现方式中,所述第二治理子模块通过第一连接接收所述第二应用数据,在所述第一连接对应的上游连接发生连接中断的情况下,所述l7治理模块还用于:向所述第二治理子模块发送第三连接的指示信息,以使所述第二治理子模块通过所述第三连接发送所述第二应用数据。
17、在一种可能的实现方式中,所述第一匹配条件包括目标服务的名称、目标服务的标识、目的地址、目的端口号、协议类型、源地址本文档来自技高网...
【技术保护点】
1.一种服务网格的治理系统,其特征在于,包括:
2.根据权利要求1所述的治理系统,其特征在于,所述识别模块具体用于:
3.根据权利要求2所述的治理系统,其特征在于,所述识别模块具体用于:
4.根据权利要求1-3中任一项所述的治理系统,其特征在于,所述L7治理模块还用于:
5.根据权利要求1-4中任一项所述的治理系统,其特征在于,所述L7治理模块还用于:
6.根据权利要求1-4中任一项所述的治理系统,其特征在于,所述第二治理子模块通过第一连接接收所述第二应用数据,在所述第一连接对应的上游连接发生连接中断的情况下,所述L7治理模块还用于:
7.根据权利要求5或6所述的治理系统,其特征在于,所述第一匹配条件包括目标服务的名称、目标服务的标识、目的地址、目的端口号、协议类型、源地址、源端口号、连接ID中的至少一项。
8.根据权利要求1-7中任一项所述的治理系统,其特征在于,所述第二治理子模块包括eBPF程序和/或内核模块。
9.一种服务网格的治理方法,其特征在于,应用于治理系统,所述治理方法包
10.根据权利要求9所述的治理方法,其特征在于,所述识别模块从所述L7治理模块中识别出所述第一治理子模块,包括:
11.根据权利要求10所述的治理方法,其特征在于,所述识别模块从所述L7治理模块的解码器、过滤器以及编码器中分别识别出解码器子模块、过滤器子模块以及编码器子模块,包括:
12.根据权利要求9-11中任一项所述的治理方法,其特征在于,所述治理方法还包括:
13.根据权利要求9-12中任一项所述的治理方法,其特征在于,所述治理方法还包括:
14.根据权利要求9-12中任一项所述的治理方法,其特征在于,所述第二治理子模块通过第一连接接收所述第二应用数据,在所述第一连接对应的上游连接发生连接中断的情况下,所述治理方法还包括:
15.根据权利要求9-14中任一项所述的治理方法,其特征在于,所述第一匹配条件包括目标服务的名称、目标服务的标识、目的地址、目的端口号、协议类型、源地址、源端口号、连接ID中的至少一项。
16.根据权利要求9-15中任一项所述的治理方法,其特征在于,所述第二治理子模块包括eBPF程序和/或内核模块。
17.一种服务网格的治理系统,其特征在于,包括:
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求9-16中任意一项所述的方法。
19.一种计算机程序产品,其特征在于,包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得所述计算机执行如权利要求9-16中任意一项所述的方法。
...【技术特征摘要】
1.一种服务网格的治理系统,其特征在于,包括:
2.根据权利要求1所述的治理系统,其特征在于,所述识别模块具体用于:
3.根据权利要求2所述的治理系统,其特征在于,所述识别模块具体用于:
4.根据权利要求1-3中任一项所述的治理系统,其特征在于,所述l7治理模块还用于:
5.根据权利要求1-4中任一项所述的治理系统,其特征在于,所述l7治理模块还用于:
6.根据权利要求1-4中任一项所述的治理系统,其特征在于,所述第二治理子模块通过第一连接接收所述第二应用数据,在所述第一连接对应的上游连接发生连接中断的情况下,所述l7治理模块还用于:
7.根据权利要求5或6所述的治理系统,其特征在于,所述第一匹配条件包括目标服务的名称、目标服务的标识、目的地址、目的端口号、协议类型、源地址、源端口号、连接id中的至少一项。
8.根据权利要求1-7中任一项所述的治理系统,其特征在于,所述第二治理子模块包括ebpf程序和/或内核模块。
9.一种服务网格的治理方法,其特征在于,应用于治理系统,所述治理方法包括:
10.根据权利要求9所述的治理方法,其特征在于,所述识别模块从所述l7治理模块中识别出所述第一治理子模块,包括:
11.根据权利要求10所述的治理方法,其特征在于,所述识别模块从所述l7治理模块的解...
【专利技术属性】
技术研发人员:张伟,张琦,张永明,
申请(专利权)人:深圳华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。