基于服务网格的服务调用方法、装置、设备及存储介质制造方法及图纸

技术编号:38247115 阅读:18 留言:0更新日期:2023-07-25 18:07
本申请涉及一种基于服务网格的服务调用方法、装置、计算机设备及存储介质,涉及计算机技术领域。该方法包括:接收第一服务发送的服务调用请求;第一服务部署在多命名空间内的第一命名空间中;该服务调用请求用于调用第二服务,第二服务部署在多命名空间内的第二命名空间中;基于服务调用请求,通过第一服务的边车组件获取第二服务的路由规则;该边车组件中记录有各个服务对应的路由规则;该路由规则用于指示访问服务所处的命名空间的路由;通过第一服务的边车组件,基于第二服务的路由规则调用第二服务。通过上述方法实现了在多命名空间内服务之间的调用,同时,在多命名空间下,调用服务无需知晓被调用的服务所在的命名空间,降低了代码侵入性。了代码侵入性。了代码侵入性。

【技术实现步骤摘要】
基于服务网格的服务调用方法、装置、设备及存储介质


[0001]本申请实施例涉及计算机
,特别涉及一种基于服务网格的服务调用方法、装置、设备及存储介质。

技术介绍

[0002]服务部署在k8s(Kubernetes)集群中的多个命名空间中,但是服务并没有使用基于DNS(Domain Name System,域名系统)的k8s的服务发现功能,而是使用另外的注册中心,如consul,zookeeper等,并且所有服务在注册中心中都在同一个命名空间中;在这种情况下,如果想把服务迁移到service mesh(服务网格)中,并使用k8s服务发现功能,会存在命名空间体系与原架构不统一的问题。
[0003]在相关技术中,通常通过将所有服务迁移到同一个命名空间中,以实现在k8s集群中的服务调用,或者,在客户端服务调用其他服务时,对服务调用请求中的服务名称人工进行修改,以使得基于该服务调用请求可以从对应的命名空间中调用的所需的服务。
[0004]然而,第一种方法中的服务迁移过程操作较为复杂,容易出错,且迁移时间过长;第二种方法中需要对客户端服务进行具体的命名空间信息的修改,代码侵入性较强,风险性较高。

技术实现思路

[0005]本申请实施例提供了一种基于服务网格的服务调用方法、装置、计算机设备及存储介质,可以在实现多命名空间内服务之间的调用的同时,减少需要获知的命名空间的数量,降低代码侵入性。该技术方案如下:
[0006]一方面,提供了一种基于服务网格的服务调用方法,所述方法包括:
>[0007]接收第一服务发送的服务调用请求;所述第一服务部署在多命名空间内的第一命名空间中;所述服务调用请求用于调用第二服务,所述第二服务部署在所述多命名空间内的第二命名空间中;
[0008]基于所述服务调用请求,通过所述第一服务的边车组件获取所述第二服务的路由规则;所述边车组件中记录有各个服务对应的路由规则;所述路由规则用于指示访问服务所处的命名空间的路由;
[0009]基于所述第二服务的路由规则调用所述第二服务。
[0010]另一方面,提供了一种基于服务网格的服务调用装置,所述装置包括:
[0011]请求接收模块,用于接收第一服务发送的服务调用请求;所述第一服务部署在多命名空间内的第一命名空间中;所述服务调用请求用于调用第二服务,所述第二服务部署在所述多命名空间内的第二命名空间中;
[0012]规则获取模块,用于基于所述服务调用请求,通过所述第一服务的边车组件获取所述第二服务的路由规则;所述边车组件中记录有各个服务对应的路由规则;所述路由规则用于指示访问服务所处的命名空间的路由;
[0013]服务调用模块,用于基于所述第二服务的路由规则调用所述第二服务。
[0014]在一种可能的实现方式中,所述规则获取模块,用于在所述服务调用请求中包含所述第二服务的路由服务名称时,基于所述第二服务的所述路由服务名称,通过所述第一服务的边车组件匹配所述第二服务的路由规则;所述路由服务名称由目标命名空间的空间名称以及所述第二服务的服务名称构成,所述目标命名空间中创建有各个服务的服务信息以及各个服务的路由规则。
[0015]在一种可能的实现方式中,所述规则获取模块,用于,
[0016]在所述服务调用请求中的请求头部中包含所述第二服务的服务名称时,通过所述第一服务的边车组件对所述第二服务的服务名称进行名称映射,获得所述第二服务的所述路由服务名称;
[0017]基于所述第二服务的所述路由服务名称,通过所述第一服务的边车组件匹配所述第二服务的路由规则。
[0018]在一种可能的实现方式中,所述服务调用模块,用于
[0019]通过所述第一服务的边车组件,基于所述第二服务的路由规则,访问所述第二命名空间;
[0020]基于所述服务调用请求从所述第二命名空间中调用所述第二服务。
[0021]在一种可能的实现方式中,所述装置还包括:
[0022]信息获取模块,用于获取所述在多命名空间内的各个服务的命名空间信息;所述命名空间信息用于指示服务所处的命名空间;
[0023]规则创建模块,用于基于各个服务的所述命名空间信息,通过服务发现组件在目标命名空间中创建各个服务的服务信息以及各个服务的路由规则;
[0024]规则发送模块,用于将各个服务的服务信息以及各个服务的路由规则发送给各个服务对应的所述边车组件。
[0025]在一种可能的实现方式中,所述规则发送模块,用于通过服务网格的控制面感知到在所述目标命名空间中创建的各个服务的服务信息以及各个服务的路由规则之后,将各个服务的服务信息以及各个服务的路由规则发送给各个服务对应的所述边车组件。
[0026]在一种可能的实现方式中,所述装置还包括:
[0027]服务迁移模块,用于将各个服务从单命名空间架构的注册中心迁移至多命名空间架构的k8s集群中。
[0028]另一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现上述的基于服务网格的服务调用方法。
[0029]另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述的基于服务网格的服务调用方法。
[0030]另一方面,提供了一种计算机程序产品,所述计算机程序产品包括至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述各种可选实现方式中提供的基于服务网格的服务调用方法。
[0031]本申请提供的技术方案可以包括以下有益效果:
[0032]本申请实施例提供的基于服务网格的服务调用方法,在多命名空间中的各个服务对应的边车组件中记录有所有服务各自对应的路由规则,从而在接收到服务调用请求时,边车组件可以基于该服务调用请求获取被调用的服务的路由规则,进而基于该路由规则从被调用的服务所处的命名空间中调用到该服务,实现了在多命名空间内服务之间的调用,同时,由于调用不同服务的服务调用请求均能通过边车组件获取到对应的路由规则,在将服务从单命名空间迁移到多命名空间的情况下,调用服务无需知晓被调用的服务所在的命名空间,降低了代码修改量,进而降低了代码侵入性。
[0033]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0034]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0035]图1示出了本申请一示例性实施例提供的在单命名空间的注册中心下进行服务调用的示意图;
[0036]图2示出了本申请一示例性实施例提供的在多命名空间的k8s集群下进行服务调用的示意图;
[0037]图3示出了本申请一示例性实施例提供的基于服务网格的服务调用方法的流程图;
[0038本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于服务网格的服务调用方法,其特征在于,所述方法包括:接收第一服务发送的服务调用请求;所述第一服务部署在多命名空间内的第一命名空间中;所述服务调用请求用于调用第二服务,所述第二服务部署在所述多命名空间内的第二命名空间中;基于所述服务调用请求,通过所述第一服务的边车组件获取所述第二服务的路由规则;所述边车组件中记录有各个服务对应的路由规则;所述路由规则用于指示访问服务所处的命名空间的路由;通过所述第一服务的边车组件,基于所述第二服务的路由规则调用所述第二服务。2.根据权利要求1所述的方法,其特征在于,所述基于所述服务调用请求,通过所述第一服务的边车组件获取所述第二服务的路由规则,包括:在所述服务调用请求中包含所述第二服务的路由服务名称时,基于所述第二服务的所述路由服务名称,通过所述第一服务的边车组件匹配所述第二服务的路由规则;所述路由服务名称由目标命名空间的空间名称以及所述第二服务的服务名称构成,所述目标命名空间中创建有各个服务的服务信息以及各个服务的路由规则。3.根据权利要求2所述的方法,其特征在于,所述基于所述服务调用请求,通过所述第一服务的边车组件获取所述第二服务的路由规则,包括:在所述服务调用请求中的请求头部中包含所述第二服务的服务名称时,通过所述第一服务的边车组件对所述第二服务的服务名称进行名称映射,获得所述第二服务的所述路由服务名称;基于所述第二服务的所述路由服务名称,通过所述第一服务的边车组件匹配所述第二服务的路由规则。4.根据权利要求1所述的方法,其特征在于,所述通过所述第一服务的边车组件,基于所述第二服务的路由规则调用所述第二服务,包括:通过所述第一服务的边车组件,基于所述第二服务的路由规则,访问所述第二命名空间;基于所述服务调用请求从所述第二命名空间中调用所述第二服务。5.根据权利于要求1至4任一所述的方法,其特征在于,在基于所述服务调用请求,通过所述第一服务的边车组件获取所述第二服务的路由规则之前,所述方法还包...

【专利技术属性】
技术研发人员:蒋超
申请(专利权)人:杭州隆埠科技有限公司
类型:发明
国别省市:

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

1