System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种服务调用方法、装置、电子设备和存储介质。
技术介绍
1、在云原生时代的浪潮下,基于物理机部署的传统微服务架构正逐步向更为灵活、高效的云原生架构演进。然而,对于大量存量业务而言,这一演进过程并非一蹴而就,而是需要伴随着业务的不断迭代而逐步展开。因此,整个演进周期可能耗时数月甚至数年,期间整个架构将长期处于一种中间状态,即云上云下混合部署架构。
2、在这种混合部署架构下,如何确保云上服务和云下服务之间的顺畅通信,成为了一个亟待解决的技术难题。传统的服务注册与发现机制在云原生环境下面临着新的挑战,尤其是在k8s(kubernetes)环境中,节点的ip(internet protocol,互联网协议)地址均为pod的ip地址,外部无法直接访问,这给服务的相互调用带来了不小的困扰。
3、为了确保整个演进过程的平滑进行,需要一种能够在云原生服务注册与发现体系下实现云上和云下服务相互感知和通讯的技术方案。然而,经过技术调研发现,现有的技术方案大多存在维护成本高、安全隐患、性能问题等诸多缺陷,无法很好地满足生产环境的需求。
技术实现思路
1、本专利技术提供一种服务调用方法、装置、电子设备和存储介质,用以解决现有技术中云上云下服务调用维护成本高、性能差、存在安全隐患的缺陷。
2、本专利技术提供一种服务调用方法,所述方法应用于服务消费者节点,所述方法包括:
3、接收服务调用请求,并基于所述服务调用请求,从注册中心获取服
4、基于所述服务消费者节点的标识和所述目标节点的标识,从预设路由策略中确定出对所述目标服务进行调用的目标路由策略,所述预设路由策略包括物理地址调用策略、云原生集群入口调用策略以及容器地址调用策略;
5、基于所述目标路由策略,对所述目标服务进行调用。
6、根据本专利技术提供的一种服务调用方法,所述注册中心包括所述服务提供者的各候选节点的注册地址,所述注册地址是所述各候选节点在启动过程中基于所述各候选节点的标识确定并注册到所述注册中心的;
7、在任一候选节点的标识为云下服务标识的情况下,所述注册地址为所述任一候选节点所在的物理机的网络地址;
8、在任一候选节点的标识为云上服务标识的情况下,所述注册地址为云原生集群入口地址,所述注册中心还包括所述任一候选节点在启动过程中注册的所在容器的网络地址。
9、根据本专利技术提供的一种服务调用方法,所述基于所述服务消费者节点的标识和所述目标节点的标识,从预设路由策略中确定出对所述目标服务进行调用的目标路由策略,包括:
10、在所述目标节点的标识为云下服务标识的情况下,确定所述目标路由策略为所述物理地址调用策略;
11、在所述服务消费者节点的标识为云下服务标识且所述目标节点的标识为云上服务标识的情况下,确定所述目标路由策略为所述云原生集群入口调用策略;
12、在所述服务消费者节点的标识和所述目标节点的标识均为云上服务标识的情况下,确定所述目标路由策略为所述容器地址调用策略。
13、根据本专利技术提供的一种服务调用方法,所述基于所述目标路由策略,对所述目标服务进行调用,包括:
14、在所述目标路由策略为所述物理地址调用策略的情况下,从所述注册中心获取所述目标节点所在的物理机的网络地址,并基于所述物理机的网络地址,对所述目标服务进行调用;
15、在所述目标路由策略为所述云原生集群入口调用策略的情况下,从所述注册中心获取所述目标节点注册的云原生集群入口地址,并基于所述云原生集群入口地址,对所述目标服务进行调用;
16、在所述目标路由策略为所述容器地址调用策略的情况下,从所述注册中心获取所述目标节点所在的容器的网络地址,并基于所述容器的网络地址,对所述目标服务进行调用。
17、根据本专利技术提供的一种服务调用方法,所述从注册中心获取服务提供者的目标节点,之后还包括:
18、在所述服务消费者节点的标识不存在的情况下,从所述注册中心获取所述目标节点的注册地址,并基于所述注册地址对所述目标服务进行调用。
19、根据本专利技术提供的一种服务调用方法,所述基于所述服务调用请求,从注册中心获取服务提供者的目标节点,包括:
20、基于所述服务调用请求,确定所述服务提供者;
21、基于所述服务提供者的服务名称,从所述注册中心获取所述服务提供者的各候选节点;
22、基于负载均衡策略,从所述各候选节点中选择一个节点,作为所述目标节点。
23、根据本专利技术提供的一种服务调用方法,所述标识是在各服务节点的启动过程中基于所述各服务节点的配置信息确定并注册到所述注册中心的,所述各服务节点包括所述服务消费者节点和所述服务提供者的各候选节点。
24、本专利技术还提供一种服务调用装置,所述装置应用于服务消费者节点,所述装置包括:
25、获取单元,用于接收服务调用请求,并基于所述服务调用请求,从注册中心获取服务提供者的目标节点,所述注册中心包括所述服务提供者的各候选节点,所述目标节点是从所述各候选节点中确定得到的,所述目标节点用于提供目标服务;
26、确定单元,用于基于所述服务消费者节点的标识和所述目标节点的标识,从预设路由策略中确定出对所述目标服务进行调用的目标路由策略,所述预设路由策略包括物理地址调用策略、云原生集群入口调用策略以及容器地址调用策略;
27、调用单元,用于基于所述目标路由策略,对所述目标服务进行调用。
28、本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述服务调用方法。
29、本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述服务调用方法。
30、本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述服务调用方法。
31、本专利技术提供的服务调用方法、装置、电子设备和存储介质,通过基于服务调用请求,从注册中心获取服务提供者的目标节点,并根据服务消费者节点的标识和目标节点的标识,自动从预设的多种路由策略,即物理地址调用策略、云原生集群入口调用策略、容器地址调用策略中确定出目标路由策略,由此可以根据目标路由策略对目标服务进行调用,实现了能够根据不同的场景和需求选择最合适的调用方式,从而提高了系统的适应性和可扩展性。此外,由于服务调用过程中是通过注册中心和路由策略自动管理的,减少了人工介入和维护的需求,也无需引入第三方插件,不仅可以降低维护成本,还可以降低潜在的安全风险,优化了性能并增强了安全性。
本文档来自技高网...【技术保护点】
1.一种服务调用方法,其特征在于,所述方法应用于服务消费者节点,所述方法包括:
2.根据权利要求1所述的服务调用方法,其特征在于,所述注册中心包括所述服务提供者的各候选节点的注册地址,所述注册地址是所述各候选节点在启动过程中基于所述各候选节点的标识确定并注册到所述注册中心的;
3.根据权利要求1所述的服务调用方法,其特征在于,所述基于所述服务消费者节点的标识和所述目标节点的标识,从预设路由策略中确定出对所述目标服务进行调用的目标路由策略,包括:
4.根据权利要求1所述的服务调用方法,其特征在于,所述基于所述目标路由策略,对所述目标服务进行调用,包括:
5.根据权利要求1所述的服务调用方法,其特征在于,所述从注册中心获取服务提供者的目标节点,之后还包括:
6.根据权利要求1至5任一项所述的服务调用方法,其特征在于,所述基于所述服务调用请求,从注册中心获取服务提供者的目标节点,包括:
7.根据权利要求1至5任一项所述的服务调用方法,其特征在于,所述标识是在各服务节点的启动过程中基于所述各服务节点的配置信息确定并注
8.一种服务调用装置,其特征在于,所述装置应用于服务消费者节点,所述装置包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述服务调用方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述服务调用方法。
...【技术特征摘要】
1.一种服务调用方法,其特征在于,所述方法应用于服务消费者节点,所述方法包括:
2.根据权利要求1所述的服务调用方法,其特征在于,所述注册中心包括所述服务提供者的各候选节点的注册地址,所述注册地址是所述各候选节点在启动过程中基于所述各候选节点的标识确定并注册到所述注册中心的;
3.根据权利要求1所述的服务调用方法,其特征在于,所述基于所述服务消费者节点的标识和所述目标节点的标识,从预设路由策略中确定出对所述目标服务进行调用的目标路由策略,包括:
4.根据权利要求1所述的服务调用方法,其特征在于,所述基于所述目标路由策略,对所述目标服务进行调用,包括:
5.根据权利要求1所述的服务调用方法,其特征在于,所述从注册中心获取服务提供者的目标节点,之后还包括:
6.根据权利要求1至5任一项所述的服...
【专利技术属性】
技术研发人员:王玮,程立,苏文畅,李全,
申请(专利权)人:安徽听见科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。