服务网格路由方法、装置、电子设备和介质制造方法及图纸

技术编号:39322277 阅读:9 留言:0更新日期:2023-11-12 16:02
本公开涉及服务网格路由方法、装置、电子设备和介质。该方法包括:服务网关对来自客户端的服务请求的数据包的名称进行哈希处理,通过逐步消除所述数据包的名称的最后一个组件获得各级前缀,并根据哈希值将服务网关的稳定布隆过滤器SBF中对应的位数组位置设置为第一值,以在服务网关的SBF中记录所有可能匹配的名称前缀可能存在于服务网关所维护的转发信息库FIB中;在服务网格的各个代理中逐级查找SBF以确定所述各级前缀是否存在于服务网格的代理的FIB之一中;以及根据在所述服务网格的各个代理中逐级查找的结果,在服务网格中为所请求的数据包创建FIB条目。请求的数据包创建FIB条目。请求的数据包创建FIB条目。

【技术实现步骤摘要】
服务网格路由方法、装置、电子设备和介质


[0001]本申请属于网络安全与
,特别涉及服务网格路由方法、装置、电子设备和介质。

技术介绍

[0002]在当今信息技术高速发展的时代,越来越多的企业和组织都开始采用微服务架构来构建他们的应用程序,以实现更高的可扩展性、可靠性和灵活性。微服务架构将应用程序划分为多个小型独立服务,每个服务都可以独立部署、升级和维护。这些服务之间通过网络进行通信,形成了一个分布式系统。
[0003]但是,微服务架构也带来了新的挑战,特别是在服务间通信方面。因为微服务架构中的服务是相互独立的,服务之间的通信涉及到多个网络节点和多个服务实例之间的交互,复杂度很高。为了解决这个问题,服务网格应运而生。服务网格是一种专为微服务架构而设计的基础设施层,旨在管理服务之间的通信。它为微服务之间的通信提供了可靠性、安全性和可观察性等功能,使得微服务架构更加容易管理和扩展。
[0004]然而,现有的服务网格架构大多采用集中控制的方式,这容易造成单点故障和瓶颈,难以应对大规模复杂微服务间通信的通信需求。

技术实现思路

[0005]本申请提出了一种服务网格路由方法、装置和电子设备,旨在提供一种更加高效、可靠的微服务间通信方式,从而更好地适应分布式系统的需求。
[0006]根据本申请的一个方面,提供了一种服务网格路由方法,包括:服务网关对来自客户端的服务请求的数据包的名称进行哈希处理,通过逐步消除所述数据包的名称的最后一个组件获得各级前缀,并根据哈希值将服务网关的稳定布隆过滤器SBF中对应的位数组位置设置为第一值,以在服务网关的SBF中记录所有可能匹配的名称前缀可能存在于服务网关所维护的FIB中;在服务网格的各个代理中逐级查找SBF以确定所述各级前缀是否存在于服务网格的代理的FIB之一中;以及根据在所述服务网格的各个代理中逐级查找的结果,在服务网格中为所请求的数据包创建FIB条目。
[0007]根据一个示例实施例,在服务网格的各个代理中逐级查找SBF以确定所述各级前缀是否存在于服务网格的代理的FIB之一中包括:在服务网格的各个代理中都没有所述各级前缀中的最长前缀时,在整个服务网格中泛洪,同时服务网格中的各个代理向客户端传送请求数据包的副本,以在各个代理的稳定布隆过滤器中记录与所有可能路径的数量一致的成功检索请求数据包的路由是否存在于对应的FIB中;如果在服务网格的一个代理的SBF中查找到其对应的FIB中存在所述前缀之一,则将服务请求转发给所述代理代表的服务,并在所述代理的SBF中进行优先级标记以指示在转发规则中所述代理转发所述服务请求的优先级,其中在其SBF中查找到其对应的FIB中存在最长前缀的代理的优先级为高,并且随着前缀组件数减少,优先级降低;以及如果没有在服务网格的任何代理的SBF中查找到其对应
的FIB中存在所述前缀之一,当前缀组件数为零时停止查找过程,并通过将对应的位数组位置设置为与所述第一值不同的第二值,在服务网格的各个代理的SBF中记录其对应的FIB中不存在服务请求的路由信息。
[0008]根据一个示例实施例,根据在所述服务网格的各个代理中逐级查找的结果,在服务网格中为所请求的数据包创建FIB条目包括:根据在代理的SBF中进行的优先级标记和/或在服务网格的各个代理的SBF中记录的其对应的FIB中是否存在服务请求的路由信息,在服务网格中为所请求的数据包创建FIB条目。
[0009]根据一个示例实施例,所述方法还包括:当有新服务要加入到服务网格中时,服务网关将新服务注册到服务网格中;将新服务的服务实例名称与前缀命名实体进行交互,以验证其名称前缀是否符合数据命名网络的命名规范;在所述新服务的服务实例名称的名称前缀符合数据命名网络的命名规范的情况下,将新服务的服务实例名称的名称前缀记录在服务网关的FIB中;在服务网格中向各个代理通告所述新服务的服务实例名称的名称前缀;以及各个代理将所述新服务的服务实例名称的名称前缀记录在自身的FIB中。
[0010]根据一个示例实施例,所述方法还包括:在验证新服务的服务实例名称的名称前缀是否符合数据命名网络的命名规范后,向客户端返回验证结果,其中在验证结果为验证失败的情况下,验证结果还包括失败原因。
[0011]根据一个示例实施例,所述方法还包括:在接收到来自客户端的服务请求时,服务网关将服务请求的数据包与前缀命名实体进行交互,以验证其名称前缀是否符合数据命名网络的命名规范;向客户端返回验证结果,其中在验证结果为验证失败的情况下,验证结果还包括失败原因,其中响应于接收到验证失败的验证结果,客户端根据失败原因重新发送服务请求的数据包。
[0012]根据一个示例实施例,所述方法还包括:当代理的FIB条目中的转发路由规则在一段时间内触发为零时,删除所述代理的所述FIB条目;以及在所述代理的SBF中将对应的位数组位置设置为与所述第一值不同的第二值以表明其FIB中不再存在该FIB条目。
[0013]根据一个示例实施例,所述方法还包括:当已删除所述FIB条目的高优先级代理和低优先级代理的SBF中都存有服务请求的优先级信息时,由于高优先级代理的SBF中的对应位数组位置已被设置为第二值,将服务请求的数据包转发给低优先级代理;响应于接收到客户端在收不到响应的情况下重传的服务请求,将服务请求的数据包从低优先级代理转发到其SBF中记录有次高优先级的代理;根据次高优先级代理的SBF中记录的其对应的FIB中存在服务请求的路由信息进行下一跳的路由,以将重传的数据包定向到正确的服务实例,同时为所请求的数据包重新创建FIB条目。
[0014]根据一个示例实施例,所述方法还包括:在代理出现故障时,与所述代理相关联的SBF被重置,停止通过所述代理转发数据包;并且通过替代路径来转发数据包。
[0015]根据一个示例实施例,所述方法还包括:在出现故障的代理恢复的情况下,通过将与所述代理相关联的SBF中的对应位数组位置设置为第一值更新与所述SBF,以强制使用该代理作为主路径或附加路径。
[0016]根据本申请的另一方面,提供了一种电子设备,包括:一个或多个处理器,和与所述一个或多个处理器耦接的存储器,所述存储器存储计算机可读程序指令,所述指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行根据本申请所述的服务网
格路由方法。
[0017]根据本申请的再一方面提供了一种服务网格路由装置,包括用于执行根据本申请所述的服务网格路由方法的步骤的模块。
[0018]根据本申请的又一方面提供了一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质具有存储在其上的指令,以用于由处理器执行以执行根据本申请所述的服务网格路由方法。
[0019]根据本申请的还一方面提供了计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时执行根据本申请所述的服务网格路由方法。
附图说明
[0020]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务网格路由方法,包括:服务网关对来自客户端的服务请求的数据包的名称进行哈希处理,通过逐步消除所述数据包的名称的最后一个组件获得各级前缀,并根据哈希值将服务网关的稳定布隆过滤器SBF中对应的位数组位置设置为第一值,以在服务网关的SBF中记录所有可能匹配的名称前缀可能存在于服务网关所维护的转发信息库FIB中;在服务网格的各个代理中逐级查找SBF以确定所述各级前缀是否存在于服务网格的代理的FIB之一中;以及根据在所述服务网格的各个代理中逐级查找的结果,在服务网格中为所请求的数据包创建FIB条目。2.根据权利要求1所述的方法,其中在服务网格的各个代理中逐级查找SBF以确定所述各级前缀是否存在于服务网格的代理的FIB之一中包括:在服务网格的各个代理中都没有所述各级前缀中的最长前缀时,在整个服务网格中泛洪,同时服务网格中的各个代理向客户端传送请求数据包的副本,以在各个代理的稳定布隆过滤器中记录与所有可能路径的数量一致的成功检索请求数据包的路由是否存在于对应的FIB中;如果在服务网格的一个代理的SBF中查找到其对应的FIB中存在所述前缀之一,则将服务请求转发给所述代理代表的服务,并在所述代理的SBF中进行优先级标记以指示在转发规则中所述代理转发所述服务请求的优先级,其中在其SBF中查找到其对应的FIB中存在最长前缀的代理的优先级为高,并且随着前缀组件数减少,优先级降低;以及如果没有在服务网格的任何代理的SBF中查找到其对应的FIB中存在所述前缀之一,当前缀组件数为零时停止查找过程,并通过将对应的位数组位置设置为与所述第一值不同的第二值,在服务网格的各个代理的SBF中记录其对应的FIB中不存在服务请求的路由信息。3.根据权利要求2所述的方法,其中根据在所述服务网格的各个代理中逐级查找的结果,在服务网格中为所请求的数据包创建FIB条目包括:根据在代理的SBF中进行的优先级标记和/或在服务网格的各个代理的SBF中记录的其对应的FIB中是否存在服务请求的路由信息,在服务网格中为所请求的数据包创建FIB条目。4.根据权利要求1

3中任一项所述的方法,还包括:当有新服务要加入到服务网格中时,服务网关将新服务注册到服务网格中;将新服务的服务实例名称与前缀命名实体进行交互,以验证其名称前缀是否符合数据命名网络的命名规范;在所述新服务的服务实例名称的名称前缀符合数据命名网络的命名规范的情况下,将新服务的服务实例名称的名称前缀记录在服务网关的FIB中;在服务网格中向各个代理通告所述新服务的服务实例名称的名称前缀;各个代理将所述新服务的服务实例名称的名称前缀记...

【专利技术属性】
技术研发人员:李雪婷
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1