CN115174687A - 服务调用方法、装置、电子设备及存储介质 - Google Patents
服务调用方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115174687A CN115174687A CN202210869734.8A CN202210869734A CN115174687A CN 115174687 A CN115174687 A CN 115174687A CN 202210869734 A CN202210869734 A CN 202210869734A CN 115174687 A CN115174687 A CN 115174687A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- calling
- gateway
- information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 177
- 238000004891 communication Methods 0.000 claims abstract description 120
- 230000008569 process Effects 0.000 claims description 119
- 230000004044 response Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Images
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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例公开了一种服务调用方法、装置、电子设备及存储介质。该方法应用于网关,包括:接收来自目标网络的针对目标调用指令的新增请求,获取每个服务集群中的各个服务节点的服务信息,该新增请求携带调用信息;根据每个服务集群中的各个服务节点的服务信息和调用信息确定目标服务节点;进而,通过网关与目标服务节点建立的通信连接,向目标服务节点发送第一服务调用指令,第一服务调用指令携带调用信息,以使目标服务节点响应于第一服务调用指令执行目标调用指令。采用本申请实施例,容器集群外部网络可以通过网关对容器集群内部的服务进行调用,缩短调用容器集群内部的服务的链路,提高服务调用的效率。
Description
技术领域
本申请涉及云计算领域,尤其涉及一种服务调用的方法、装置、电子设备及存储介质。
背景技术
目前,随着云计算技术的发展,将服务部署在容器集群后,通过该服务的地址调用该服务,由于部署在容器集群内部的服务所使用的是集群内部的地址,因此,仅能支持该容器集群内部的服务通过地址进行互相调用,该容器集群外部的网络无法直接调用该容器集群内部的服务。
以容器集群管理系统(Kubernetes,K8S)所管理的集群为例,若是该容器集群外部网络想要访问或调用该容器集群内部的服务,则需先通过该容器集群的入口网关(ingress)进入该容器集群的内部,进而通过该容器集群的资源访问组件(API server)进行服务的调用。通过这种方式访问从容器集群外部调用容器集群内部的服务经过的链路较长,服务调用的效率较低。
因此,如何提高外部网络调用容器集群内部的服务的效率,成为当前亟需解决的技术问题。
发明内容
本申请实施例提供一种服务调用方法、装置、电子设备及存储介质,可提高外部网络调用容器集群内部的服务的效率。
一方面,本申请实施例提供一种服务调用方法,应用于网关,该方法包括:
接收来自目标网络的针对目标调用指令的新增请求,获取每个服务集群中的各个服务节点的服务信息,上述新增请求携带调用信息;
根据上述每个服务集群中的各个服务节点的服务信息和上述调用信息确定目标服务节点;
通过上述网关与上述目标服务节点建立的通信连接,向上述目标服务节点发送第一服务调用指令,上述第一服务调用指令携带上述调用信息,以使上述目标服务节点响应于上述第一服务调用指令执行上述目标调用指令。
一方面,本申请实施例提供了一种服务调用方法,应用于目标服务节点,该方法包括:
建立与网关的通信连接;
基于上述通信连接接收来自上述网关的第一服务调用指令,上述第一服务调用指令携带调用信息,上述调用信息为上述网关接收到来自目标网络的针对目标调用指令的新增请求中携带的信息;
响应于上述第一服务调用指令根据上述调用信息执行上述目标调用指令;
其中,上述目标服务节点为至少一个服务集群中的服务节点。
另一方面,本申请实施例提供了一种服务调用装置,应用于网关,该装置包括:
第一接收模块,用于接收来自目标网络的针对目标调用指令的新增请求,获取每个服务集群中的各个服务节点的服务信息,上述新增请求携带调用信息;
第一确定模块,用于根据上述每个服务集群中的各个服务节点的服务信息和上述调用信息确定目标服务节点;
第一发送模块,用于通过上述网关与上述目标服务节点建立的通信连接,向上述目标服务节点发送第一服务调用指令,上述第一服务调用指令携带上述调用信息,以使上述目标服务节点响应于上述第一服务调用指令执行上述目标调用指令。
在一种可行的实施例中,上述装置还包括:
第二接收模块,用于接收来自各个服务集群中M个服务节点的通信连接请求,与上述M个服务节点分别建立通信连接,上述M个服务节点包括上述目标服务节点,M为正整数;
第三接收模块,用于基于M个通信连接接收来自上述M个服务节点的注册请求,每个上述注册请求携带服务节点的服务信息;
存储模块,用于存储上述M个服务节点的服务信息,并向上述M个服务节点发送上述每个服务集群中的各个服务节点的服务信息。
在一种可行的实施例中,上述第一发送模块具体用于:
配置N个目标网关进程,N为正整数,N大于或等于i,i为正整数;
通过上述N个目标网关进程中第i个目标网关进程与上述目标服务节点建立第一通信连接;
基于上述第一通信连接,通过上述第i个目标网关进程向上述目标服务节点发送上述第一服务调用指令。
在一种可行的实施例中,上述第一确定模块具体用于:
确定与上述调用信息匹配的至少一个参考服务节点;
根据预设的分配规则确定目标服务集群,并将上述至少一个参考服务节点中属于上述目标服务集群的参考服务节点确定为上述目标服务节点。
在一种可行的实施例中,上述装置还包括:
第四接收模块,用于基于上述第一通信连接,通过上述第i个目标网关进程接收上述目标服务节点发送的第二服务调用指令,上述第二服务调用指令携带调用服务节点的节点信息;
第二确定模块,用于确定上述N个目标网关进程中与上述调用服务节点建立第二通信连接的第j个目标网关进程,N大于或等于j,j为正整数;
第二发送模块,用于基于上述第二通信连接,通过上述第j个目标网关进程根据上述第二服务调用指令,向上述调用服务节点发送第三服务调用指令;
第五接收模块,用于基于上述第二通信连接,通过上述第j个目标网关进程接收上述调用服务节点返回的调用结果,上述调用结果为上述服务调用节点执行上述调用信息的执行结果;
第三发送模块,用于基于上述第一通信连接,通过上述第i个目标网关进程向上述目标服务节点发送上述调用结果,上述调用结果为上述第j个目标网关进程向上述第i个目标网关进程发送的。
在一种可行的实施例中,上述目标服务节点与上述调用服务节点不属于同一服务集群。
在一种可行的实施例中,上述新增请求为目标终端设备发送的,上述装置还包括:
第六接收模块,用于基于上述通信连接,接收上述目标服务节点发送的针对上述目标调用指令的服务执行结果;
第四发送模块,用于向上述目标终端设备发送上述服务执行结果。
另一方面,本申请实施例提供了一种服务调用装置,应用于目标服务节点,该装置包括:
建立模块,用于建立与网关的通信连接;
第一接收模块,用于基于上述通信连接接收来自上述网关的第一服务调用指令,上述第一服务调用指令携带调用信息,上述调用信息为上述网关接收到来自目标网络的针对目标调用指令的新增请求中携带的信息;
执行模块,用于响应于上述第一服务调用指令根据上述调用信息执行上述目标调用指令;
其中,上述目标服务节点为至少一个服务集群中的服务节点。
在一种可行的实施例中,上述装置还包括:
第一发送模块,用于基于上述通信连接,向上述网关发送服务信息,上述服务信息用于指示上述目标服务节点提供的服务;
第二接收模块,用于接收基于上述通信连接,接收来自上述网关发送的每个服务集群中的各个服务节点的服务信息;
存储模块,用于存储上述每个服务集群中的各个服务节点的服务信息。
在一种可行的实施例中,上述网关配置有N个目标网关进程,N为正整数;上述建立模块具体用于:
获取上述网关的地址信息,并基于上述地址信息向上述网关发送连接请求;
在接收到上述网关通过第i个目标网关进程发送的连接响应的情况下,与上述第i个目标网关进程建立第一通信连接,N大于或等于i,i为正整数。
在一种可行的实施例中,上述执行模块具体用于:
根据上述调用信息获取服务调用信息,上述服务调用信息用于调用除上述目标服务节点以外的其他服务节点提供的服务;
根据上述服务调用信息和上述每个服务集群中的各个服务节点的服务信息确定调用服务节点;
基于上述第一通信连接,向上述第i个目标网关进程发送第二服务调用指令,上述第二服务调用指令携带上述调用服务节点的节点信息;
基于上述第一通信连接,接收来自上述第i个目标网关进程发送的调用结果,上述调用结果为上述第i个目标网关接收到的上述服务调用节点执行上述调用信息的执行结果。
在一种可行的实施例中,上述目标服务节点与上述调用服务节点不属于同一服务集群。
在一种可行的实施例中,上述装置还包括:
第二发送模块,用于基于上述通信连接,向上述网关发送针对上述目标调用指令的服务执行结果。
一方面,本申请实施例提供了一种电子设备,包括处理器和存储器,该处理器和存储器相互连接;
上述存储器用于存储计算机程序;
上述处理器被配置用于在调用上述计算机程序时,执行本申请实施例提供的服务调用方法的任一可行实施方式所提供的方法。
一方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现本申请实施例提供的服务调用方法的任一可行实施方式所提供的方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图像处理方法的任一种可行的实施方式所提供的方法。
本申请实施例所提供的方案的有益效果在于:
在本申请实施例中,本申请实施例所提供的服务调用方法、装置、电子设备及存储介质,在网关接收到来自目标网络的针对目标调用指令的新增请求时,获取每个服务集群中的各个服务节点的服务信息,根据各个服务信息和新增请求携带的调用信息确定目标服务节点,并通过网关与目标服务节点建立的通信连接,可以向目标服务节点发送携带调用信息的服务调用指令,以使该目标服务节点可以响应于该调用指令根据调用信息执行该目标调用指令。采用上述技术方案,在外部网络对容器集群内部进行服务调用时,可以仅通过网关直接进行服务调用,提高了外部网络调用容器集群内部的服务的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种服务调用系统的结构示意图;
图2是本申请实施例提供的一种服务调用方法的流程示意图;
图3是本申请实施例提供的一种目标服务节点启动后的时序示意图;
图4是本申请实施例提供的一种服务调用方法的场景示意图;
图5是本申请实施例提供的一种目标服务节点调用其他服务节点的服务的时序示意图;
图6是本申请实施例提供的一种服务调用的时序示意图;
图7是本申请实施例提供的一种服务调用装置的结构示意图;
图8是本申请实施例提供的另一种服务调用装置的结构示意图;
图9是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“上述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在上述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
在对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释:
1、容器:用于将应用与其所有必要文件捆绑到一个运行时环境中的技术,可以理解为定义的一个包,其中有需要执行的程序以及该程序的所有的依赖关系,如代码、系统库等,可以实现对应用以及其整个运行时环境(运行该应用的全部所需文件)进行打包(隔离)。
2、容器集群管理系统(Kubernetes):也被称为分布式的集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
3、服务/实例/服务节点(Pod):kubernetes创建或部署的最小/最简单的基本单位。一个Pod代表集群上正在运行的一个微服务进程,一个微服务进程可以被称为一个实例。一个微服务进程可以封装一个提供服务的容器,也可以封装多个提供服务的容器。在本申请实施例中,以一个Pod封装一个提供服务的容器,且一个Pod作为一个服务节点为例进行说明。
4、节点:是容器集群组成的基本元素,节点可以是虚拟机,也可以是物理机,其形态由不同的业务所决定。本质上是用于托管Pod的机器,每个节点都包含运行Pod所需要的基本组件。其中,用于管理和控制容器集群的节点可以运行有资源访问组件(API server),用于提供资源操作的入口,并提供认证、授权、访问控制等功能。
5、入口网关(ingress):用于公开容器集群外部网络到容器集群内部网络的地址的路由。K8S中的服务通过节点端口(NodePort)将服务暴露到外部网络,随着微服务的增多,端口变得难以管理,因此,通过入口网关做路由的转发,以统一管理。
为了更好的理解和说明本申请所提供的方案及有益效果,下面首先结合一个可选实施例对本申请所提供的方法进行说明。参见图1,图1是本申请所适用的一种服务调用系统的结构示意图,可以理解的是,本申请实施例所提供的图像处理方法可以适用于但不限于应用于如图1所示的应用场景中。
在本示例中,如图1所示,该示例中的服务调用系统可以但不限于包括终端设备、网关以及服务节点。其中,终端设备可以与网关进行通信,网关可以与服务节点进行通信。服务节点可以是容器集群中的服务节点,服务节点可以是用于提供服务实例的节点,该容器集群可以是K8S容器集群,也可以是其他容器集群,本申请对此不做限定。以容器集群中的服务节点之间的网络为内部网络,终端设备所在的网络为外部网络,则外部网络和可以通过网关与容器集群中的服务节点,即内部网络进行通信。其中,网络(如上述内部网络、外部网络)可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、Wi-Fi及其他实现无线通信的网络。
在本申请中的服务调用方法的执行主体可以是网关,网关可以是终端设备,终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、笔记本电脑、数字广播接收器、MID(Mobile Internet Devices,移动互联网设备)、PDA(个人数字助理)、台式计算机、车载终端(例如车载导航终端、车载电脑等)、智能音箱、智能手表等。网关也可以是服务器,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。在本申请实施例中,网关可以配置一个或多个目标网关进程(网关实例),配置的一个或多个目标网关进程可以与容器集群中的各个服务节点进行通信。不同的目标网关进程可以部署在不同的服务器中,即不同的机器分别托管不同的目标网关进程。可选地,以下以网关为服务器为例进行说明。
如图1所示,本申请中的服务调用方法的具体实现过程可以包括步骤S1-S3:
步骤S1,网关服务器接收来自目标网络的针对目标调用指令的新增请求,获取每个服务集群中的各个服务节点的服务信息,该新增请求携带调用信息。
步骤S2,网关服务器根据每个服务集群中的各个服务节点的服务信息和调用信息确定目标服务节点。
步骤S3,通过该网关服务器与目标服务节点建立的通信连接,向目标服务节点发送第一服务调用指令,其中,该第一服务调用指令携带上述调用信息。
可理解,上述仅为一种示例,本申请实施例在此不作限定。
本申请中的服务调用方法的执行主体还可以是目标服务节点,目标服务节点可以是终端设备,终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、笔记本电脑、数字广播接收器、MID(Mobile Internet Devices,移动互联网设备)、PDA(个人数字助理)、台式计算机、车载终端(例如车载导航终端、车载电脑等)、智能音箱、智能手表等。目标服务节点也可以是服务器,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。可选地,以下以目标服务节点为服务器为例进行说明。
如图1所示,本申请中的服务调用方法的具体实现过程可以包括步骤S11-S13:
步骤S11,目标服务节点服务器建立与网关的通信连接。
步骤S12,目标服务节点服务器基于上述通信连接接收来自网关的第一服务调用指令,该第一服务调用指令携带调用信息,该调用信息为上述网关接收到来自目标网络的针对目标调用指令的新增请求中携带的信息。
步骤S13,目标服务节点服务器响应于上述第一服务调用指令根据上述调用信息执行上述目标调用指令。
可理解,上述仅为一种示例,本申请实施例在此不作限定。
为使本申请的目的、技术方案和优点更加清楚,下面将结合一具体实施例对本申请实施方式作进一步地详细描述。
目前,以K8S容器集群为例,若是容器集群外部网络想要访问或者调用容器集群内部的服务,则需要先通过容器集群的入口网关(ingress),再通过容器集群中的节点所运行的资源访问组件(API server)提供资源操作的入口、访问控制等,才能从容器集群的外部网络访问到容器集群的内部网络,即容器集群的服务,并进行服务的调用。这种方式调用服务的链路较长,进行服务调用的耗时也较长,服务调用的效率较低。为了解决该问题,参见图2,图2,图2是本申请实施例提供的一种服务调用方法的流程示意图。该方法可以由网关21和目标服务节点22进行交互完成。其中:
步骤201、网关接收来自目标网络的针对目标调用指令的新增请求,获取每个服务集群中的各个服务节点的服务信息,上述新增请求携带调用信息。
在本申请实施例中,目标网络可以指除容器集群内部网络以外的外部网络,目标网络的终端设备可以通过应用调用容器集群中的服务。其中,该目标网络中的应用可以被称为北向应用(北向服务),容器集群所在的内部网络可以被称为南向服务,则从终端设备从目标网络通过网关调用容器集群中的服务的多个新增请求的流量可以被称为南北向流量。目标调用指令可以是外部网络的终端设备向网关发送的调用指令,用于调用容器集群中的服务。该新增请求可以是网关接收到的新增请求,用于新增调用指令,即上述目标调用指令,并进一步对该新增请求进行响应。
其中,服务集群可以是上述容器集群,例如可以是K8S集群,也可以是其他类型的容器集群,本申请对此不做限定。服务集群的个数可以是一个,也可以是多个。每个服务集群中包括至少一个服务节点,每个服务节点对应一个服务信息,该服务信息可以包括该服务节点能够提供的能力,也可以包括该服务节点的地址信息等,根据该服务节点的地址信息网关可以与该服务节点进行通信。网关所接收到的外部网络的针对目标调用指令的新增请求可以携带目标调用指令的调用信息。调用信息可以指示外部网络想要调用的是哪种服务类型,调用信息也可以包括用于服务节点执行的任务信息。示例性的,若外部网络想要调用容器集群中的一个服务或者一个能力,则可以通过网关进行调用。
在一种可行的实施例中,网关在接收来自目标网络的针对目标调用指令的新增请求之前,还可以接收各个服务集群中的服务节点的注册请求,以便网关可以获取各个服务节点的服务信息,以便后续网关可以根据调用指令选择目标服务节点,目标服务节点为网关根据外部网络的调用指令确定的服务节点。
具体的,网关可以接收来自各个服务集群中M个服务节点的通信连接请求,与M个服务节点分别建立通信连接,并基于M个通信连接接收来自上述M个服务节点的注册请求,每个注册请求都携带该服务节点的服务信息。其中,M为正整数。进一步地,网关可以存储接收到的M个注册请求中的M个服务信息。可选地,网关还可以将存储的各个服务集群中的服务节点的服务信息发送至各个服务节点,以便各个服务节点可以获取到其他节点的服务信息,从而在执行调用指令或者其他指令的情况下,服务节点也可以调用其他服务节点的服务。
其中,上述M个服务节点中可以包括目标服务节点,目标服务节点可以用于执行外部网络的目标调用指令,该目标服务节点可以主动建立与网关的通信连接,并基于该通信连接向网关发送服务信息,该服务信息用于指示该目标服务节点所提供的服务。可选地,该服务信息还可以包括该目标服务节点的地址信息等等。进一步地,该目标服务节点可以基于该通信连接,接收来自网关发送的各个服务集群中的多个服务节点的服务信息,并将网关发送的各个服务集群中的多个服务节点的服务信息进行存储,以便后续进行服务调用。
在一个可行的实施例中,网关配置有N个目标网关进程,可以通过不同的目标网关进程分别与一个或多个服务节点建立通信连接。需要说明的是,一个目标网关进程在一个时间段内仅能与一个服务节点建立通信连接,若需要同时与多个服务节点进行交互,则可以通过多个目标网关进程分别与多个服务节点建立的通信连接进行通信。具体地,以M个服务节点中的目标服务节点为例进行讲解,目标服务节点在启动后预置有网关的地址信息,例如可以预置网关的互联网协议地址(Internet Protocol Address,IP)和端口号。目标服务节点可以获取网关的地址信息,并基于上述地址信息向网关发送连接请求,即通过该地址信息,目标服务节点作为客户端能够向网关作为服务端发起传输控制协议(Transmission Control Protocol,TCP)连接的连接请求。网关响应目标服务节点的连接请求,可以通过配置的N个目标网关进程中的其中一个网关进程,例如网关可以通过第i个目标网关进程响应该连接请求,目标服务节点在接收到网关通过第i个目标网关进程发送的连接响应的情况下,与第i个目标网关进程建立通信连接(第一通信连接)。其中,N大于或等于i,i为正整数。
可选地,这种通过目标服务节点发起的TCP连接被称为反向通道,将多个目标网关进程与多个服务节点分别建立的多个通信连接可以作为TCP连接池,即反向通道连接池。网关维护着一定数量的TCP连接。容器集群中的服务节点可以根据网关传输的流量大小,若流量减小,则可以关闭连接池中的部分TCP连接,即关闭空闲的连接,若流量增大,则可以新增连接池中的TCP连接,即可以配置连接池中TCP连接资源的数量,能根据不同时段的流量自动对连接池中进行自动扩缩容。可选地,网关可以根据服务节点的个数配置多个目标网关进程,各个目标网关进程之间具有分布式的能力,可以水平进行扩缩容,即可以增加或者关闭目标网关进程。
其中,网关可以包括网关控制面和网关运行面,网关控制面可以提供用户界面,该用户界面可以为北向应用的用户界面,显示在终端设备中,网关控制面预置或者接收用户配置的分配规则,该分配规则可以用于网关根据目标服务调用指令选择对应的目标服务节点。目标服务节点可以包括连接模块和服务模块,连接模块可以用于与网关建立通信连接,如上述TCP连接;服务模块可以提供服务,例如可以提供图像处理、文字识别等服务,本申请对此不做限定。
参见图3,图3是本申请实施例提供的一种目标服务节点启动后的时序示意图,如图3所示,以目标服务节点包括的连接模块和服务模块为例。1、目标服务节点中的连接模块与网关配置的N个目标网关进程中的一个目标网关进程建立通信连接(如第一通信连接),如第i个目标网关进程;2、目标网关进程(如第i个目标网关进程)可以维持该通信连接;3、目标网关进程(如第i个目标网关进程)可以向该目标服务节点的连接模块发送其他服务节点的服务信息;4、该目标服务节点的服务模块可以向连接模块发送服务注册的请求,即发送该目标服务节点的服务信息;5、该目标服务节点的连接模块可以将该目标服务节点的服务信息发送至目标网关进程(如第i个目标网关进程);6、网关中的N个目标网关进程可以同步该目标服务节点的服务信息;7、网关控制面可以向N个目标网关进程发送预设的分配规则,以便后续进行服务调用。可选地,该预设的分配规则还可以包括服务上下线,服务限流熔断等配置信息。
步骤202、上述网关根据上述每个服务集群中的各个服务节点的服务信息和上述调用信息确定目标服务节点。
在一种可行的实施方式中,不同的服务节点可以提供不同的服务,即每个服务节点的服务信息不同,则网关根据目标调用指令中的调用信息,调用信息可以用于指示外部网络想要调用的服务的种类,或者调用需求,进而网关可以根据各个服务集群中的各个服务节点的服务信息以及调用信息确定满足该调用需求的至少一个参考服务节点。可以理解的是,各个参考服务节点分布在不同的容器集群中的,预设的分配规则可以指定分配到的某一个容器集群,进而网关确定目标服务集群后,可以将分布在该目标服务集群中的参考服务节点确定为目标服务节点。
可选地,在网关接收到大量针对目标调用指令的新增请求的情况下,预设的分配规则可以是针对某一个集群的流量规则。示例性的,针对同一种服务,可以配置集群A分配20%的流量,集群B分配80%的流量,本申请对此不做限定。
步骤203、上述网关通过上述网关和上述目标服务节点建立的通信连接,向目标服务节点发送第一服务调用指令,上述第一服务调用指令携带上述调用信息。
在一种可行的实施方式中,网关可以通过网关和目标服务节点建立的通信连接(如第一通信连接),向目标服务节点发送第一服务调用指令,该第一服务调用指令可以携带调用信息,该调用信息可以用于指示被调用的目标服务节点响应于该第一服务调用指令根据调用信息执行目标调用指令,从而完成外部网络对容器集群的服务调用。具体的,网关可以配置N个目标网关节点,通过第i个目标网关进程与目标服务节点建立第一通信连接,并通过第i个目标网关进程向该目标服务节点发送该第一服务调用指令。
参见图4,图4是本申请实施例提供的一种服务调用方法的场景示意图,如图4所示,从上到下的顺序,最上方是北向流量的源头,即北向应用,一个或多个终端设备可以根据业务需求通过北向应用通过负载均衡器向网关发送针对目标调用指令的新增请求,即一个或多个终端设备可以发起对容器集群内部的服务进行调用,多个目标调用指令的新增请求可以被称为业务流量。在图4的中央为网关,网关包括控制面和运行面,控制面中包括网关数据库以及控制面进程,运行面包括一个或多个目标网关进程,如图4所示的目标网关进程1、目标网关进程2、目标网关进程3等等。网关可以通过各个目标网关进程接收各个服务集群中各个服务节点的连接请求,并与各个服务集群中的服务节点建立通信连接,如上述TCP连接。在图4的下方为多个容器集群,这里以K8S集群和其他集群为例。每个集群包括至少一个服务节点,服务节点可以理解为K8S集群中的Pod。图4以一个服务集群包括两个服务节点为例进行示例。服务节点中的连接模块可以向网关发送连接请求,并在接收到响应后与网关(网关中的目标网关进程)建立通信连接,并通过该通信连接接收目标网关进程发送的第一服务调用指令,进而服务节点中的连接模块可以将第一服务调用指令中携带的调用信息发送至服务模块,由服务节点中的服务模块根据调用信息执行该第一服务调用指令,即执行网关接收到的目标调用指令。
其中,在图4所示的各个容器集群中,如图4所示的K8S集群1和K8S集群2,其包括的服务节点1、服务节点2、服务节点3以及服务节点4中的连接模块可以是K8S提供的边车模式(sidecar)。如图4所示的其他集群1,其包括的服务节点5和服务节点6中的连接模块可以是网关软件开发工具包(Software Development Kit,SDK)。两者的区别在于K8S容器集群中的边车模式对原代码是无侵入式的,而通过SDK的方式对原代码有一定的侵入。
步骤204、目标服务节点响应于上述第一服务调用指令根据上述调用信息执行上述目标调用指令。
在一种可行的实施方式中,目标服务节点可以响应于目标网关进程(如第i个网关进程)发送的第一服务调用指令,根据该第一服务调用指令携带的调用信息执行对应的操作。其中,目标服务节点可以在执行对应的操作中,调用其他服务节点的服务。具体的,该目标服务节点可以通过网关调用其他服务节点提供的服务,由各个服务节点之间发起的服务调用的流量可以被称为东西向流量。目标服务节点可以基于与目标网关进程(如第i个目标网关进程)之间的第一通信连接,发送第二服务调用指令,该第二服务调用指令携带了调用服务节点的节点信息。该调用服务节点的节点信息可以是根据服务节点在启动后向网关发送服务信息后,接收到网关发送的其他服务节点的服务信息确定的。即该目标服务节点可以根据想要达到的业务功能确定想要调用的其他服务节点(即调用服务节点)的服务。
进一步地,网关在通过第i个目标网关进程接收上述目标服务节点发送的第二服务调用指令之后,确定与该第二服务调用指令中携带的节点信息所指示的调用服务节点建立通信连接的第j个目标网关进程,其中,第j个目标网关进程也是N个目标网关进程中的一个,j为正整数。可选地,i的值可以与j的值相同,也可以与j的值不同,本申请对此不做限定。进而,网关可以基于第二通信连接,通过第j个目标网关进程根据第二服务调用指令,向该调用服务节点发送第三服务调用指令,并基于第二通信连接接收该调用服务节点返回的调用结果,可以理解的是,该调用结果为顾问调用节点执行该调用信息的执行结果。第j个目标网关进程可以将执行结果发送至第i个目标网关进程,从而网关可以通过第i个目标网关进程向目标服务节点发送调用结果。即目标服务节点可以基于第一通信连接,接收来自第i个目标网关进程发送的调用结果,从而完成调用。可选地,目标服务节点与调用服务节点可以属于同一服务集群,也可以不属于同一服务集群。
参见图5,图5是本申请实施例提供的一种目标服务节点调用其他服务节点的服务的时序示意图,如图5所示,以服务模块1和连接模块1为目标服务节点中的服务模块和连接模块,服务模块2和连接模块2为调用服务节点的服务模块和连接模块为例进行讲解。1、连接模块1与目标网关进程建立通信连接;2、连接模块2与目标网关进程建立通信连接;3、服务模块1可以向连接模块1发送第二服务调用指令;4、连接模块1向目标网关进程发送第二服务调用指令;5、目标网关进程确定调用服务节点;6、目标网关进程向调用服务节点的连接模块2发送第三服务调用指令;7、连接模块2向服务模块2发送第三服务调用指令;8、服务模块2可以进行服务响应,向链接模块2发送调用结果;9、连接模块2向目标网关进程发送该调用结果;10、目标网关进程向连接模块1发送调用结果,即服务响应;11、连接模块1向服务模块1发送该服务响应的结果,即调用结果。
在一个可行的实施方式中,目标调用指令的新增请求为目标终端设备发送的,则在服务调用结束后,可以返回服务调用结果。即网关可以基于通信连接(如上述第一通信连接),接收目标服务节点向网关发送的针对目标调用指令的服务执行结果,进而,网关可以向目标终端设备发送服务执行结果。
参见图6,图6是本申请实施例提供的一种目标服务节点调用其他服务节点的服务的时序示意图。如图6所示,1、目标服务节点的连接模块与网关配置的目标网关进程建立通信连接;2、网关接收目标终端设备(外部网络)发送的目标调用指令的新增请求;3、网关根据新增请求中携带的调用信息确定目标服务节点;4、目标网关进程基于与目标服务节点的连接模块之间的通信连接向目标服务节点的连接模块发送第一服务调用指令;5、目标服务节点的连接模块可以向目标服务节点的服务模块发送该第一服务调用指令;6、目标服务节点的服务模块可以响应该第一服务调用指令,执行目标调用指令,得到服务响应的结果,即服务执行结果,并将该服务响应的结果(服务执行结果)发送至目标服务节点的连接模块;7、目标服务节点的连接模块向目标网关进程发送该服务执行结果。8、目标网关进程可以向外部网络的目标终端设备发送该服务执行结果。
在本申请实施例中,通过网关对外暴露服务,在外部网络对容器集群内部进行服务调用时,可以仅通过网关直接进行服务调用,即北向流量只需要经过一层负载均衡处理即可实现多个容器集群应用流量的负载,减少了容器集群中的服务节点对外提供服务的响应时间,从而提高了外部网络调用容器集群内部的服务的效率,同样提高了服务发现的效率,也提高了服务响应的效率。并且在serverless架构下对服务启动、服务发现,以及流量调度的效率上均有提升,也可以为serverless架构在多集群场景下实现一级负载,即可实现多集群公平弹性。
参见图7,图7是本申请实施例提供的一种服务调用装置的结构示意图。本申请实施例提供的服务调用装置1可应用于网关,该服务调用装置1包括:
第一接收模块11,用于接收来自目标网络的针对目标调用指令的新增请求,获取每个服务集群中的各个服务节点的服务信息,上述新增请求携带调用信息;
第一确定模块12,用于根据上述每个服务集群中的各个服务节点的服务信息和上述调用信息确定目标服务节点;
第一发送模块13,用于通过上述网关与上述目标服务节点建立的通信连接,向上述目标服务节点发送第一服务调用指令,上述第一服务调用指令携带上述调用信息,以使上述目标服务节点响应于上述第一服务调用指令执行上述目标调用指令。
在一种可行的实施例中,上述装置还包括:
第二接收模块,用于接收来自各个服务集群中M个服务节点的通信连接请求,与上述M个服务节点分别建立通信连接,上述M个服务节点包括上述目标服务节点,M为正整数;
第三接收模块,用于基于M个通信连接接收来自上述M个服务节点的注册请求,每个上述注册请求携带服务节点的服务信息;
存储模块,用于存储上述M个服务节点的服务信息,并向上述M个服务节点发送上述每个服务集群中的各个服务节点的服务信息。
在一种可行的实施例中,上述第一发送模块具体用于:
配置N个目标网关进程,N为正整数,N大于或等于i,i为正整数;
通过上述N个目标网关进程中第i个目标网关进程与上述目标服务节点建立第一通信连接;
基于上述第一通信连接,通过上述第i个目标网关进程向上述目标服务节点发送上述第一服务调用指令。
在一种可行的实施例中,上述第一确定模块具体用于:
确定与上述调用信息匹配的至少一个参考服务节点;
根据预设的分配规则确定目标服务集群,并将上述至少一个参考服务节点中属于上述目标服务集群的参考服务节点确定为上述目标服务节点。
在一种可行的实施例中,上述装置还包括:
第四接收模块,用于基于上述第一通信连接,通过上述第i个目标网关进程接收上述目标服务节点发送的第二服务调用指令,上述第二服务调用指令携带调用服务节点的节点信息;
第二确定模块,用于确定上述N个目标网关进程中与上述调用服务节点建立第二通信连接的第j个目标网关进程,N大于或等于j,j为正整数;
第二发送模块,用于基于上述第二通信连接,通过上述第j个目标网关进程根据上述第二服务调用指令,向上述调用服务节点发送第三服务调用指令;
第五接收模块,用于基于上述第二通信连接,通过上述第j个目标网关进程接收上述调用服务节点返回的调用结果,上述调用结果为上述服务调用节点执行上述调用信息的执行结果;
第三发送模块,用于基于上述第一通信连接,通过上述第i个目标网关进程向上述目标服务节点发送上述调用结果,上述调用结果为上述第j个目标网关进程向上述第i个目标网关进程发送的。
在一种可行的实施例中,上述目标服务节点与上述调用服务节点不属于同一服务集群。
在一种可行的实施例中,上述新增请求为目标终端设备发送的,上述装置还包括:
第六接收模块,用于基于上述通信连接,接收上述目标服务节点发送的针对上述目标调用指令的服务执行结果;
第四发送模块,用于向上述目标终端设备发送上述服务执行结果。
在本申请实施例中,在网关接收到来自目标网络的针对目标调用指令的新增请求时,获取每个服务集群中的各个服务节点的服务信息,根据各个服务信息和新增请求携带的调用信息确定目标服务节点,并通过网关与目标服务节点建立的通信连接,可以向目标服务节点发送携带调用信息的服务调用指令,以使该目标服务节点可以响应于该调用指令根据调用信息执行该目标调用指令。采用上述技术方案,在外部网络对容器集群内部进行服务调用时,可以仅通过网关直接进行服务调用,提高了外部网络调用容器集群内部的服务的效率。
具体实现中,上述装置1可通过其内置的各个功能模块执行如上述图2中应用于网关侧的各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
参见图8,图8是本申请实施例提供的一种服务调用装置的结构示意图。本申请实施例提供的服务调用装置2可应用于目标服务节点,该服务调用装置2包括:
建立模块21,用于建立与网关的通信连接;
第一接收模块22,用于基于上述通信连接接收来自上述网关的第一服务调用指令,上述第一服务调用指令携带调用信息,上述调用信息为上述网关接收到来自目标网络的针对目标调用指令的新增请求中携带的信息;
执行模块23,用于响应于上述第一服务调用指令根据上述调用信息执行上述目标调用指令;
其中,上述目标服务节点为至少一个服务集群中的服务节点。
在一种可行的实施例中,上述装置还包括:
第一发送模块,用于基于上述通信连接,向上述网关发送服务信息,上述服务信息用于指示上述目标服务节点提供的服务;
第二接收模块,用于接收基于上述通信连接,接收来自上述网关发送的每个服务集群中的各个服务节点的服务信息;
存储模块,用于存储上述每个服务集群中的各个服务节点的服务信息。
在一种可行的实施例中,上述网关配置有N个目标网关进程,N为正整数;上述建立模块具体用于:
获取上述网关的地址信息,并基于上述地址信息向上述网关发送连接请求;
在接收到上述网关通过第i个目标网关进程发送的连接响应的情况下,与上述第i个目标网关进程建立第一通信连接,N大于或等于i,i为正整数。
在一种可行的实施例中,上述执行模块具体用于:
根据上述调用信息获取服务调用信息,上述服务调用信息用于调用除上述目标服务节点以外的其他服务节点提供的服务;
根据上述服务调用信息和上述每个服务集群中的各个服务节点的服务信息确定调用服务节点;
基于上述第一通信连接,向上述第i个目标网关进程发送第二服务调用指令,上述第二服务调用指令携带上述调用服务节点的节点信息;
基于上述第一通信连接,接收来自上述第i个目标网关进程发送的调用结果,上述调用结果为上述第i个目标网关接收到的上述服务调用节点执行上述调用信息的执行结果。
在一种可行的实施例中,上述目标服务节点与上述调用服务节点不属于同一服务集群。
在一种可行的实施例中,上述装置还包括:
第二发送模块,用于基于上述通信连接,向上述网关发送针对上述目标调用指令的服务执行结果。
在本申请实施例中,目标服务节点可以建立与网关的通信连接,并基于该通信连接接收来自网关的服务调用指令,该服务调用指令携带的调用信息,为网关接收到的来自目标网络的针对目标调用指令的新增请求中携带的信息,进而目标服务节点可以响应于该服务调用指令,根据该调用信息执行该目标调用指令。采用上述技术方案,在外部网络对容器集群内部进行服务调用时,可以仅通过网关直接进行服务调用,提高了外部网络调用容器集群内部的服务的效率。
具体实现中,上述装置2可通过其内置的各个功能模块执行如上述图2中应用于目标服务节点侧的各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
参见图9,图9是本申请实施例提供的电子设备的结构示意图。如图9所示,本实施例中的电子设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述电子设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory,NVM),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的电子设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序。
应当理解,在一些可行的实施方式中,上述处理器1001可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
具体实现中,上述电子设备1000可通过其内置的各个功能模块执行如上述图2中前述方法实施例中网关的相关步骤所提供的实现方式,上述电子设备1000可通过其内置的各个功能模块执行如上述图2中前述方法实施例中目标服务节点的相关步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图2中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的服务调用装置或电子设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart mediacard,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,上述计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如图2中各个步骤所提供的方法。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或电子设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或电子设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (17)
1.一种服务调用方法,其特征在于,所述方法应用于网关,所述方法包括:
接收来自目标网络的针对目标调用指令的新增请求,获取每个服务集群中的各个服务节点的服务信息,所述新增请求携带调用信息;
根据所述每个服务集群中的各个服务节点的服务信息和所述调用信息确定目标服务节点;
通过所述网关与所述目标服务节点建立的通信连接,向所述目标服务节点发送第一服务调用指令,所述第一服务调用指令携带所述调用信息,以使所述目标服务节点响应于所述第一服务调用指令执行所述目标调用指令。
2.根据权利要求1所述的方法,其特征在于,所述接收来自目标网络的针对目标调用指令的新增请求之前,所述方法还包括:
接收来自各个服务集群中M个服务节点的通信连接请求,与所述M个服务节点分别建立通信连接,所述M个服务节点包括所述目标服务节点,M为正整数;
基于M个通信连接接收来自所述M个服务节点的注册请求,每个所述注册请求携带服务节点的服务信息;
存储所述M个服务节点的服务信息,并向所述M个服务节点发送所述每个服务集群中的各个服务节点的服务信息。
3.根据权利要求2所述的方法,其特征在于,所述通过所述网关与所述目标服务节点建立的通信连接,向所述目标服务节点发送第一服务调用指令,包括:
配置N个目标网关进程,N为正整数,N大于或等于i,i为正整数;
通过所述N个目标网关进程中第i个目标网关进程与所述目标服务节点建立第一通信连接;
基于所述第一通信连接,通过所述第i个目标网关进程向所述目标服务节点发送所述第一服务调用指令。
4.根据权利要求1所述的方法,其特征在于,所述根据所述每个服务集群中的各个服务节点的服务信息和所述调用信息确定目标服务节点,包括:
确定与所述调用信息匹配的至少一个参考服务节点;
根据预设的分配规则确定目标服务集群,并将所述至少一个参考服务节点中属于所述目标服务集群的参考服务节点确定为所述目标服务节点。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
基于所述第一通信连接,通过所述第i个目标网关进程接收所述目标服务节点发送的第二服务调用指令,所述第二服务调用指令携带调用服务节点的节点信息;
确定所述N个目标网关进程中与所述调用服务节点建立第二通信连接的第j个目标网关进程,N大于或等于j,j为正整数;
基于所述第二通信连接,通过所述第j个目标网关进程根据所述第二服务调用指令,向所述调用服务节点发送第三服务调用指令;
基于所述第二通信连接,通过所述第j个目标网关进程接收所述调用服务节点返回的调用结果,所述调用结果为所述服务调用节点执行所述调用信息的执行结果;
基于所述第一通信连接,通过所述第i个目标网关进程向所述目标服务节点发送所述调用结果,所述调用结果为所述第j个目标网关进程向所述第i个目标网关进程发送的。
6.根据权利要求5所述的方法,其特征在于,所述目标服务节点与所述调用服务节点不属于同一服务集群。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述新增请求为目标终端设备发送的,所述通过所述网关与所述目标服务节点建立的通信连接,向所述目标服务节点发送所述服务调用指令,所述服务调用指令携带所述调用信息之后,所述方法还包括:
基于所述通信连接,接收所述目标服务节点发送的针对所述目标调用指令的服务执行结果;
向所述目标终端设备发送所述服务执行结果。
8.一种服务调用方法,其特征在于,所述方法应用于目标服务节点,所述方法包括:
建立与网关的通信连接;
基于所述通信连接接收来自所述网关的第一服务调用指令,所述第一服务调用指令携带调用信息,所述调用信息为所述网关接收到来自目标网络的针对目标调用指令的新增请求中携带的信息;
响应于所述第一服务调用指令根据所述调用信息执行所述目标调用指令;
其中,所述目标服务节点为至少一个服务集群中的服务节点。
9.根据权利要求8所述的方法,其特征在于,所述基于所述通信连接接收来自所述网关的第一服务调用指令之前,所述方法还包括:
基于所述通信连接,向所述网关发送服务信息,所述服务信息用于指示所述目标服务节点提供的服务;
基于所述通信连接,接收来自所述网关发送的每个服务集群中的各个服务节点的服务信息;
存储所述每个服务集群中的各个服务节点的服务信息。
10.根据权利要求9所述的方法,其特征在于,所述网关配置有N个目标网关进程,N为正整数;
所述建立与网关的通信连接,包括:
获取所述网关的地址信息,并基于所述地址信息向所述网关发送连接请求;
在接收到所述网关通过第i个目标网关进程发送的连接响应的情况下,与所述第i个目标网关进程建立第一通信连接,N大于或等于i,i为正整数。
11.根据权利要求10所述的方法,其特征在于,所述响应于所述第一服务调用指令根据所述调用信息执行所述目标调用指令,包括:
根据所述调用信息获取服务调用信息,所述服务调用信息用于调用除所述目标服务节点以外的其他服务节点提供的服务;
根据所述服务调用信息和所述每个服务集群中的各个服务节点的服务信息确定调用服务节点;
基于所述第一通信连接,向所述第i个目标网关进程发送第二服务调用指令,所述第二服务调用指令携带所述调用服务节点的节点信息;
基于所述第一通信连接,接收来自所述第i个目标网关进程发送的调用结果,所述调用结果为所述第i个目标网关接收到的所述服务调用节点执行所述调用信息的执行结果。
12.根据权利要求11所述的方法,其特征在于,所述目标服务节点与所述调用服务节点不属于同一服务集群。
13.根据权利要求8-12任一项所述的方法,其特征在于,所述响应于所述第一服务调用指令根据所述调用信息执行所述目标调用指令之后,所述方法还包括:
基于所述通信连接,向所述网关发送针对所述目标调用指令的服务执行结果。
14.一种服务调用装置,其特征在于,应用于网关,包括:
第一接收模块,用于接收来自目标网络的针对目标调用指令的新增请求,获取每个服务集群中的各个服务节点的服务信息,所述新增请求携带调用信息;
第一确定模块,用于根据所述每个服务集群中的各个服务节点的服务信息和所述调用信息确定目标服务节点;
第一发送模块,用于通过所述网关与所述目标服务节点建立的通信连接,向所述目标服务节点发送第一服务调用指令,所述第一服务调用指令携带所述调用信息,以使所述目标服务节点响应于所述第一服务调用指令执行所述目标调用指令。
15.一种服务调用装置,其特征在于,应用于目标服务节点,包括:
建立模块,用于建立与网关的通信连接;
第一接收模块,用于基于所述通信连接接收来自所述网关的第一服务调用指令,所述第一服务调用指令携带调用信息,所述调用信息为所述网关接收到来自目标网络的针对目标调用指令的新增请求中携带的信息;
执行模块,用于响应于所述第一服务调用指令根据所述调用信息执行所述目标调用指令;
其中,所述目标服务节点为至少一个服务集群中的服务节点。
16.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序;
所述处理器被配置用于在调用所述计算机程序时,执行如权利要求1-7任一项所述的方法,或者,执行如权利要求8-13任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-7任一项所述的方法,或者,以实现权利要求8-13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210869734.8A CN115174687B (zh) | 2022-07-21 | 2022-07-21 | 服务调用方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210869734.8A CN115174687B (zh) | 2022-07-21 | 2022-07-21 | 服务调用方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115174687A true CN115174687A (zh) | 2022-10-11 |
CN115174687B CN115174687B (zh) | 2024-06-25 |
Family
ID=83496734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210869734.8A Active CN115174687B (zh) | 2022-07-21 | 2022-07-21 | 服务调用方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174687B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493191A (zh) * | 2017-08-08 | 2017-12-19 | 深信服科技股份有限公司 | 一种集群节点及自调度容器集群系统 |
CN108282527A (zh) * | 2018-01-22 | 2018-07-13 | 北京百度网讯科技有限公司 | 生成服务实例的分布式系统和方法 |
CN109582441A (zh) * | 2018-11-30 | 2019-04-05 | 北京百度网讯科技有限公司 | 用于提供容器服务的系统、方法和装置 |
CN111092816A (zh) * | 2019-11-26 | 2020-05-01 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111147322A (zh) * | 2019-12-13 | 2020-05-12 | 中盈优创资讯科技有限公司 | 5g核心网微服务架构的测试系统及方法 |
CN111212111A (zh) * | 2019-12-17 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 对象存储服务管理方法及电子设备 |
US20210336788A1 (en) * | 2020-04-24 | 2021-10-28 | Netapp, Inc. | Management services api gateway |
US20210359935A1 (en) * | 2020-05-13 | 2021-11-18 | Red Hat, Inc. | Tunnel-based network connectivity for computing clusters |
WO2021249268A1 (zh) * | 2020-06-09 | 2021-12-16 | 阿里巴巴集团控股有限公司 | 服务网格实例的构建方法、服务网格系统以及多集群系统 |
CN113905083A (zh) * | 2021-10-15 | 2022-01-07 | 上海商汤临港智能科技有限公司 | 用户代码运行方法及装置、电子设备和存储介质 |
US20220038501A1 (en) * | 2020-07-29 | 2022-02-03 | Vmware, Inc. | Connection tracking for container cluster |
CN114650231A (zh) * | 2022-05-13 | 2022-06-21 | 南京金宁汇科技有限公司 | 一种可视容器化的联盟链节点部署方法及系统 |
CN114760360A (zh) * | 2020-12-29 | 2022-07-15 | 网神信息技术(北京)股份有限公司 | 请求响应方法、装置、电子设备及计算机可读存储介质 |
-
2022
- 2022-07-21 CN CN202210869734.8A patent/CN115174687B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493191A (zh) * | 2017-08-08 | 2017-12-19 | 深信服科技股份有限公司 | 一种集群节点及自调度容器集群系统 |
CN108282527A (zh) * | 2018-01-22 | 2018-07-13 | 北京百度网讯科技有限公司 | 生成服务实例的分布式系统和方法 |
CN109582441A (zh) * | 2018-11-30 | 2019-04-05 | 北京百度网讯科技有限公司 | 用于提供容器服务的系统、方法和装置 |
CN111092816A (zh) * | 2019-11-26 | 2020-05-01 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111147322A (zh) * | 2019-12-13 | 2020-05-12 | 中盈优创资讯科技有限公司 | 5g核心网微服务架构的测试系统及方法 |
CN111212111A (zh) * | 2019-12-17 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 对象存储服务管理方法及电子设备 |
US20210336788A1 (en) * | 2020-04-24 | 2021-10-28 | Netapp, Inc. | Management services api gateway |
US20210359935A1 (en) * | 2020-05-13 | 2021-11-18 | Red Hat, Inc. | Tunnel-based network connectivity for computing clusters |
WO2021249268A1 (zh) * | 2020-06-09 | 2021-12-16 | 阿里巴巴集团控股有限公司 | 服务网格实例的构建方法、服务网格系统以及多集群系统 |
US20220038501A1 (en) * | 2020-07-29 | 2022-02-03 | Vmware, Inc. | Connection tracking for container cluster |
CN114760360A (zh) * | 2020-12-29 | 2022-07-15 | 网神信息技术(北京)股份有限公司 | 请求响应方法、装置、电子设备及计算机可读存储介质 |
CN113905083A (zh) * | 2021-10-15 | 2022-01-07 | 上海商汤临港智能科技有限公司 | 用户代码运行方法及装置、电子设备和存储介质 |
CN114650231A (zh) * | 2022-05-13 | 2022-06-21 | 南京金宁汇科技有限公司 | 一种可视容器化的联盟链节点部署方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115174687B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11169839B2 (en) | Management of IoT devices in a virtualized network | |
CN109976774B (zh) | 区块链节点部署方法、装置、设备和存储介质 | |
CN104219127B (zh) | 一种虚拟网络实例的创建方法以及设备 | |
CN112511611B (zh) | 节点集群的通信方法、装置、系统及电子设备 | |
CN110557357B (zh) | 一种远程过程调用协议自适应方法、相关装置及服务器 | |
CN108494817B (zh) | 数据传输方法、相关装置及系统 | |
CN110554927A (zh) | 基于区块链的微服务调用方法 | |
WO2019127418A1 (zh) | 网络服务管理方法、相关装置及系统 | |
KR20180132826A (ko) | Nfv를 통한 풀 기반 m2m 서비스 계층 구축 | |
CN110377431B (zh) | 多注册中心场景下服务调用方法及装置 | |
CN113300854B (zh) | 一种边缘节点能力扩展方法、系统及扩展盒子 | |
CN112532683A (zh) | 一种基于微服务架构下的边缘计算方法和设备 | |
CN115883669A (zh) | 一种数据分发方法、系统、设备和介质 | |
CN111858041A (zh) | 一种数据处理方法及服务器 | |
CN111338758A (zh) | 资源管理方法、装置和电子设备 | |
CN112702362B (zh) | Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112714146B (zh) | 一种资源调度方法、装置、设备及计算机可读存储介质 | |
CN113783914A (zh) | 数据处理方法、装置及设备 | |
CN112235378A (zh) | 数据更新方法、装置、存储介质及电子设备 | |
CN115174687B (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN114363254B (zh) | 租户隔离方法、装置及电子设备 | |
CN114189893A (zh) | O-ran能力开放方法、通信系统、装置及存储介质 | |
CN114760360A (zh) | 请求响应方法、装置、电子设备及计算机可读存储介质 | |
CN109669793B (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 |