CN115174657A - 微服务应用调用方法、装置、计算机设备及存储介质 - Google Patents
微服务应用调用方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115174657A CN115174657A CN202210659723.7A CN202210659723A CN115174657A CN 115174657 A CN115174657 A CN 115174657A CN 202210659723 A CN202210659723 A CN 202210659723A CN 115174657 A CN115174657 A CN 115174657A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- micro
- cluster
- application
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000013507 mapping Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000412611 Consul Species 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000010365 information processing Effects 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
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请涉及一种微服务应用调用方法、装置、计算机设备及存储介质。该方法包括:调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址,目标服务器调用目标服务组件将调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据调用地址调用目标微服务应用;第二集群与第一集群为不同的集群。采用上述方法增加了不同微服务应用的调用场景,不仅能够在服务集群内对不同微服务应用进行调用,还能够实现跨服务集群中不同微服务应用之间的调用,从而能够提高微服务调用方法的广泛适用性。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种微服务应用调用方法、装置、计算机设备及存储介质。
背景技术
随着云原生技术的发展与流行,大量部署在虚拟机或者应用容器引擎内的微服务应用开始迁移至开源自动化部署管理系统(kubernetes)集群中运行。
但是,当不同微服务应用迁移至不同的kubernetes集群内时,由于kubernetes内的微服务应用IP是kubernetes集群内的一个内网IP,只在kubernetes集群内有效,在kubernetes集群外部是无法访问到的,这导致无法实现跨kubernetes集群中不同微服务应用之间的调用。基于此,实现跨kubernetes集群中不同微服务应用之间的调用是目前亟待解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种微服务应用调用方法、装置、计算机设备及存储介质。
第一方面,本申请提供了一种微服务应用调用方法,该方法包括:
目标服务器调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址;目标服务组件与目标微服务应用部署在目标服务器中的同一个调度单元中,目标服务器为第一集群中的任一个服务器;
目标服务器调用目标服务组件将调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据调用地址调用目标微服务应用;第二集群与第一集群为不同的集群。
本申请实施例提供的微服务应用调用方法可以调用服务集群内部署的目标服务组件动态获取目标微服务应用的调用地址,并能够将目标微服务应用的调用地址注册到微服务注册中心中,以让外服务集群中的微服务应用从微服务注册中心获取到目标微服务应用的调用地址,并根据目标微服务应用的调用地址对服务集群内目标微服务应用进行调用,该方法增加了不同微服务应用的调用场景,不仅能够在服务集群内对不同微服务应用进行调用,还能够实现跨服务集群中不同微服务应用之间的调用,从而能够提高微服务调用方法的广泛适用性;同时,该方法不需要对服务集群内的微服务应用的代码进行修改和测试,就能够实现外服务集群中的微服务应用调用服务集群内的微服务应用,从而使得整个微服务调用过程简单化。
在其中一个实施例中,目标服务器调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址,包括:
目标服务器调用目标服务组件根据目标微服务应用的标识信息,在管理中心存储的多个微服务应用的映射信息中进行匹配;映射信息为各微服务应用的标识信息与调用地址之间的对应关系;
将映射关系中匹配成功的调用地址确定为目标微服务应用的调用地址。
本申请实施例可以调用目标服务组件根据目标微服务应用的标识信息,在管理中心存储的多个微服务应用的映射信息中进行匹配,并将匹配成功的调用地址确定为目标微服务应用的调用地址;该方法可以调用目标服务组件从管理中心动态获取目标微服务应用的调用地址,以便能够将目标微服务应用的调用地址注册至外的微服务注册中心中。
在其中一个实施例中,标识信息为根据微服务应用的标识和/或微服务应用所属的调度单元的标识生成。
本申请实施例通过微服务应用的标识和/或微服务应用所属的调度单元的标识可以快速让管理中心从映射关系中查找到微服务应用的调用地址。
在其中一个实施例中,目标服务器调用目标服务组件将调用地址存储至微服务注册中心中,包括:
目标服务器调用目标服务组件将目标微服务应用的调用地址与目标微服务应用的标识信息发送至微服务注册中心,以指示微服务注册中心对目标微服务应用的调用地址与目标微服务应用的标识信息进行存储。
本申请实施例可以调用目标服务组件将目标微服务应用的调用地址与目标微服务应用的标识信息发送至微服务注册中心,该过程可以避免将冗余的微服务应用的属性信息存储至微服务注册中心中,从而能够减少微服务注册中心中的无效信息量,以让外服务集群中的微服务应用能够根据待调用的微服务应用的标识信息从微服务注册中心中快速、准确的获取到目标微服务应用的调用地址,进一步还可以缩短调用微服务应用的处理时长。
在其中一个实施例中,上述方法还包括:
目标服务器获取目标服务组件的程序文件;目标服务组件的程序文件是基于微服务注册中心的类型生成的;
目标服务器将目标服务组件的程序文件进行编译并打包生成目标服务组件的镜像文件;
目标服务器根据目标服务组件的镜像文件,在目标微服务应用所属的调度单元中部署目标服务组件。
本申请实施例可以获取目标服务组件的程序文件,将目标服务组件的程序文件进行编译并打包生成目标服务组件的镜像文件,并根据目标服务组件的镜像文件,在目标微服务应用所属的调度单元中部署目标服务组件,该方法通过开发部署服务组件,来实现在不更改原有微服务应用的代码的前提下解决服务集群内微服务应用无法完成跨服务集群调用微服务应用的问题;同时,该方法仅需要在服务集群内的调度单元中部署服务组件就可以实现外服务集群中的微服务应用调用服务集群内的微服务应,不需要在部署服务集群内的微服务应用时执行对服务集群内微服务应用的代码进行修改的过程,进而能够达到平滑部署的效果。
在其中一个实施例中,上述方法还包括:
在目标微服务应用所属的调度单元中部署目标服务组件之后,将目标微服务应用的服务方式配置为只发现不注册的模式。
本申请实施例可以在目标微服务应用所属的调度单元中部署目标服务组件之后,将目标微服务应用的服务方式配置为只发现不注册的模式,从而能够防止微服务应用的IP地址注册至微服务注册中心中,在微服务应用从微服务注册中心查找待调用的微服务应用的调用地址时,避免出现将微服务应用的IP地址和调用地址混淆导致查找结果不准确的情况;同时,该方法能够防止微服务应用的IP地址注册至微服务注册中心中,进一步还可以减小IP资源占用内存。
在其中一个实施例中,上述方法还包括:
在目标微服务应用所属的调度单元中部署目标服务组件时,将目标服务组件的所属调度单元与第一集群中的管理中心的服务账户进行绑定。
本申请实施例可以将目标服务组件的所属调度单元与第一集群中的管理中心的服务账户进行绑定,从而使得调度单元中的目标服务组件有访问管理中心的权限,同时管理中心还能够为目标服务组件服务相应的功能。
第二方面,本申请提供了一种微服务应用调用装置,该装置包括:
调用地址获取模块,用于调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址;目标服务组件与目标微服务应用部署在目标服务器中的同一个调度单元中,目标服务器为第一集群中的任一个服务器;
调用地址存储模块,用于调用目标服务组件将调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据调用地址调用目标微服务应用;第二集群与第一集群为不同的集群。
第三方面,本申请提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,该处理器执行计算机程序时实现上述第一方面任一实施例中的方法的步骤。
第四方面,本申请提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面任一实施例中的方法的步骤。
附图说明
图1为一个实施例中微服务应用调用方法的应用环境图;
图2为一个实施例中微服务应用调用方法的流程示意图;
图3为一个实施例中从第一集群的管理中心中获取目标微服务应用的调用地址的方法流程示意图;
图4为另一个实施例中部署目标服务组件的方法流程示意图;
图5为一个实施例中微服务应用调用装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的微服务应用调用方法,可以适用于微服务应用调用系统,该系统中可以部署多个服务集群和一个微服务注册中心,可选地,该服务集群可以为高可用集群、高性能集群或者负载均衡集群。可选地,高可用集群可以为服务器状态检测(keepalived)集群、拓林思双机热备份(TurbolinuxTurboHA)集群、心跳信息检测和资源管理(Heartbeat)集群等等;高性能集群可以为分布式(Hadoop)集群等等;负载均衡集群可以为基于linux的拓林思(Turbolinux)集群、集群服务器(Cluster Server)、基于Linux服务器(LinuxVirtual Server)集群等等。
但在本申请实施例中,以该服务集群为高可用集群中的kubernetes集群为例对微服务应用调用系统进行说明。如图1所示为一微服务应用调用系统的部署结构图,该图1中仅示出了两个服务集群,分别为kubernetes集群1和kubernetes集群2。可选地,多个kubernetes集群和一个微服务注册中心之间可以为通信连接,该通信方式可以为Wi-Fi,移动网络或蓝牙连接等等。其中,在微服务应用调用系统中,kubernetes集群1和kubernetes集群2外还可以部署一个或多个微服务应用,图1仅示出了集群外的两个微服务应用,即微服务应用A和微服务应用B。在本申请实施例中,kubernetes集群1和kubernetes集群2均可以通过独立的服务器、云端或者是多个服务器组成的服务器集群来实现;微服务注册中心可以通过独立的服务器或云端来实现。可选地,kubernetes集群1和kubernetes集群2中服务器或者云端上还可以部署一个或多个调度单元(pod单元)和一个管理中心(kube-apiserver),每个调度单元中可以部署一个微服务应用。可选地,不同kubernetes集群中的管理中心不同。
同时,在本申请实施例中,每个调度单元中还部署有一个服务发现组件,且每个调度单元中部署的服务发现组件是相同,该服务发现组件也可以称为边车组件,即sidecar组件。可选地,kubernetes集群中各微服务应用和管理中心可以部署在同一个服务器或者云端上,还可以部署在多个服务器或者云端上。可以理解的是,实现kubernetes集群的所有服务器或者云端的总数量可以等于kubernetes集群中所有调度单元和管理中心所部署的服务器或云端的总数量。
其中,图1中示出的kubernetes集群1和kubernetes集群2均包括两个调度单元;kubernetes集群1中的一个调度单元中部署有微服务应用C和服务发现组件,另一个调度单元中部署有微服务应用D和服务发现组件;kubernetes集群2中的一个调度单元中部署有微服务应用E和服务发现组件,另一个调度单元中部署有微服务应用F和服务发现组件。可选地,kubernetes集群中的每个调度单元与kubernetes集群内的管理中心可以进行通信。
请参阅图2所示的微服务应用调用方法的流程示意图,本申请实施例以该微服务应用调用方法应用于微服务应用调用系统中任一kubernetes集群中的任一个调度单元部署的服务器为例进行说明,该微服务应用调用方法包括以下步骤:
S100、目标服务器调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址。其中,目标服务组件与目标微服务应用部署在目标服务器中的同一个调度单元中,目标服务器为第一集群中的任一个服务器。
具体地,如图1所示的微服务应用调用系统,可以将微服务应用调用系统中的任一kubernetes集群称为第一集群,另外一个kubernetes集群可以称为第二集群。可选地,第一集群中的任一个调度单元中的服务发现组件可以称为目标服务组件,且部署该调度单元的服务器可以称为目标服务器。可选地,与目标服务组件部署在同一调度单元中的微服务应用可以称为目标微服务应用。
还可以理解的是,部署第一集群中任一调度单元的服务器可以称为目标服务器,部署目标服务器的调度单元可以通过目标微服务应用和目标服务组件实现。可选地,上述调度单元可以理解为kubernetes集群内的最小单元;一个调度单元中可以部署多个容器,一个容器内可以部署一个服务。在本申请实施例中,该调度单元可以包括两个容器,一个容器部署微服务应用,另一个容器部署服务组件;且调度单元中的服务组件通常会完成一些微服务应用无法完成的附加服务。其中,同一个调度单元内的容器可以共享网络栈协议、IP地址、调度单元的名称、容器的状态运行等信息。
需要说明的是,目标服务器可以调用目标服务器所部署的调度单元中的目标服务组件,从第一集群的管理中心中获取目标微服务应用的调用地址。可选地,若第一集群中仅部署一个调度单元,则第一集群的管理中心中可以仅存储该调度单元中目标微服务应用的属性信息。可选地,目标微服务应用的属性信息可以包括目标微服务应用的部署时间、功能、IP地址、调用地址和/或所属的调度单元等等,且这些不同信息均携带有对应的标识信息。
在本申请实施例中,目标微服务应用的属性信息中一定包括目标微服务应用的调用地址。其中,目标服务器调用目标服务组件,可以调用地址对应的标识信息从第一集群的管理中心存储的目标微服务应用的属性信息中提取目标微服务应用的调用地址。若第一集群的管理中心仅存储目标微服务应用的调用信息,则目标服务器调用目标服务组件,可以直接获取第一集群的管理中心中的目标微服务应用的调用信息。
可以理解的是,若第一集群中仅部署一个调度单元,则第一集群的管理中心中可以独立存储每个调度单元中目标微服务应用的属性信息,各目标微服务应用的属性信息可以分别存储在不同的数据库。可选地,目标服务器调用目标服务组件,可以从对应数据库中获取目标微服务应用的属性信息中的调用地址。
S200、目标服务器调用目标服务组件将调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据调用地址调用目标微服务应用。其中,第二集群与第一集群为不同的集群。
具体地,目标服务器调用目标服务组件可以向微服务注册中心发送地址存储请求,以让微服务注册中心响应地址存储请求,将目标微服务应用的调用地址注册到微服务注册中心中。可选地,地址存储请求中可以携带目标微服务应用的调用地址,除此之外,地址存储请求中还可以携带目标微服务应用的其它属性信息,如,部署时间、功能、IP地址和/或所属的调度单元。
其中,为了实现跨kubernetes集群中不同微服务应用对目标微服务应用的调用,上述调用地址可以为负载均衡(LoadBalancer)地址或路由(Ingress)地址,在本申请实施例中,为了实现外网访问跨kubernetes集群内微服务应用,该调用地址为Nodeport地址。
需要说明的是,目标服务组件可以将目标微服务应用的调用地址存储至微服务注册中心中,以实现跨kubernetes集群中不同微服务应用对目标微服务应用的调用。也就是,可以供第一集群外的其它集群中的服务器从微服务注册中心获取该目标微服务应用的调用地址,并使得其它集群中的服务器根据获取到的目标微服务应用的调用地址调用第一集群中的目标微服务应用。在本申请实施例中,其它集群可以为第二集群。
在本申请实施例中,第一集群中部署各调度单元的服务器均可以调用对应调度单元中的服务组件,从第一集群的管理中心中获取对应调度单元中的微服务应用的调用地址,并且各服务组件将获取到对应微服务应用的调用地址存储至微服务注册中心中。
另外,在执行上述S200中的步骤之后,若出现kubernetes集群内的微服务应用需要调用外服务集群内的微服务应用时,下面将以一示例说明具体调用过程。示例性的,若第二集群内的微服务应用1需要调用第一集群内的微服务应用2,则微服务应用1所在服务器可以调用与微服务应用1部署在同一个调度单元中的服务组件从微服务注册中心获取微服务应用2的调用地址,然后根据微服务应用2的调用地址调用第一集群内的微服务应用2。该示例中的第二集群可以称为外服务集群。
可以理解的是,服务组件仅实现了获取并注册微服务应用的调度地址的功能,在后续微服务应用调用阶段和通信阶段的工作还是由微服务应用本身完成,所以理论上也不会影响微服务应用之间的网络性能。
本申请实施例提供的微服务应用调用方法可以调用服务集群内部署的目标服务组件动态获取目标微服务应用的调用地址,并能够将目标微服务应用的调用地址注册到微服务注册中心中,以让外服务集群中的微服务应用从微服务注册中心获取到目标微服务应用的调用地址,并根据目标微服务应用的调用地址对服务集群内目标微服务应用进行调用,该方法增加了不同微服务应用的调用场景,不仅能够在服务集群内对不同微服务应用进行调用,还能够实现跨服务集群中不同微服务应用之间的调用,从而能够提高微服务调用方法的广泛适用性;同时,该方法不需要对服务集群内的微服务应用的代码进行修改和测试,就能够实现外服务集群中的微服务应用调用服务集群内的微服务应用,从而使得整个微服务调用过程简单化。
在一些场景中,服务集群的管理中心可能会统一存储服务集群内多个微服务应用的调用地址,但是,调用调度单元中的服务组件只能对调度单元中的微服务应用进行服务,基于此,下面将介绍从管理中心中如何获取目标微服务应用的调用地址。在一实施例中,如图3所示,上述S100中目标服务器调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址的步骤,可以包括以下步骤:
S110、目标服务器调用目标服务组件根据目标微服务应用的标识信息,在管理中心存储的多个微服务应用的映射信息中进行匹配;映射信息为各微服务应用的标识信息与调用地址之间的对应关系。
具体地,目标服务器调用目标服务组件可以向第一集群中的管理中心发送目标微服务应用的调用地址获取请求,以使管理中心响应调用地址获取请求,在管理中心存储的多个微服务应用的映射信息中进行一一匹配。可选地,上述微服务应用的映射信息可以包括微服务应用的标识信息、功能、所属的调度单元、IP地址和/或调用地址等等。
需要说明的是,上述调用地址获取请求中可以携带目标微服务应用的标识信息,以使管理中心根据目标微服务应用的标识信息与已存储的多个微服务应用的映射信息中的标识信息进行一一匹配。可选地,目标服务组件可以目标微服务应用可以通过共享信息获取目标微服务应用的标识信息。
在本申请实施例中,上述映射信息为第一集群中各调度单元中的微服务应用的标识信息与调用地址之间的对应关系。可选地,上述标识信息可以为微服务应用的名称、微服务应用的编号等等信息。其中,标识信息可以通过中文、数字、字母、符号等字符表示,对此本申请实施例不做限定。
S120、将映射关系中匹配成功的调用地址确定为目标微服务应用的调用地址。
具体地,目标服务器调用目标服务组件可以将映射关系中匹配成功的微服务应用的调用地址确定为目标微服务应用的调用地址。在本申请实施例中,第一集群内各调度单元中的微服务应用的标识信息不同,所以第一集群中的管理中心存储的映射关系中仅有一个微服务应用的标识信息与目标微服务应用的标识信息能够匹配。
其中,上述标识信息为根据微服务应用的标识和/或微服务应用所属的调度单元的标识生成。
在本申请实施例中,为了能够快速让管理中心从映射关系中查找到微服务应用的调用地址,上述目标微服务应用的标识信息可以设定为与目标微服务应用有直接关联关系的信息,如目标微服务应用自己的标识和/或目标微服务应用所属的调度单元的标识。
本申请实施例提供的微服务应用调用方法可以调用目标服务组件根据目标微服务应用的标识信息,在管理中心存储的多个微服务应用的映射信息中进行匹配,并将匹配成功的调用地址确定为目标微服务应用的调用地址;该方法可以调用目标服务组件从管理中心动态获取目标微服务应用的调用地址,以便能够将目标微服务应用的调用地址注册至外的微服务注册中心中。
在一些场景中,为了实现跨服务集群中不同微服务应用之间的调用,需要将服务集群内微服务应用的调用地址存储至服务集群外,以便外服务集群的微服务应用获取到服务集群内微服务应用的调用地址,并根据获取到的调用地址调用服务集群内的微服务应用。基于此,在一实施例中,上述S200中目标服务器调用目标服务组件将调用地址存储至微服务注册中心中的步骤,可以包括:目标服务器调用目标服务组件将目标微服务应用的调用地址与目标微服务应用的标识信息发送至微服务注册中心,以指示微服务注册中心对目标微服务应用的调用地址与目标微服务应用的标识信息进行存储。
具体地,微服务注册中心可以存储kubernetes集群内的各调度单元中微服务应用的属性信息。可选地,微服务应用的属性信息可以为微服务应用的部署时间、功能、IP地址、调用地址和/或所属的调度单元等等。
其中,为了让kubernetes集群外的微服务应用能够从微服务注册中心中准确、快速获取到目标微服务应用的调用地址,上述微服务应用的属性信息可以为微服务应用的调用地址和微服务应用的标识信息。也就是,微服务注册中心中不需要将冗余的微服务应用的属性信息进行存储,仅需要将微服务应用的调用地址和微服务应用的标识信息进行存储即可。其中,目标微服务应用的调用地址与目标微服务应用的标识信息之间具有一一映射关系。
在本申请实施例中,目标服务器调用目标服务组件可以将目标微服务应用的调用地址与目标微服务应用的标识信息发送至微服务注册中心,以让微服务注册中心对应目标微服务应用的调用地址与目标微服务应用的标识信息进行存储,以便kubernetes集群外的微服务应用,能够根据待调用的微服务应用的标识信息从微服务注册中心中获取到目标微服务应用的调用地址,并根据调用地址进一步调用目标微服务应用。
本申请实施例提供的微服务应用调用方法可以调用目标服务组件将目标微服务应用的调用地址与目标微服务应用的标识信息发送至微服务注册中心,该过程可以避免将冗余的微服务应用的属性信息存储至微服务注册中心中,从而能够减少微服务注册中心中的无效信息量,以让外服务集群中的微服务应用能够根据待调用的微服务应用的标识信息从微服务注册中心中快速、准确的获取到目标微服务应用的调用地址,进一步还可以缩短调用微服务应用的处理时长。
由于微服务应用调用系统中各调度单元内的目标服务组件是在传统微服务应用调用系统中各调度单元的基础上额外部署的组件,下面将介绍对微服务应用调用系统中各调度单元内部署目标服务组件的过程。在一实施例中,在执行上述S100的步骤之前,如图4所示,上述微服务应用调用方法还可以包括以下步骤:
S300、目标服务器获取目标服务组件的程序文件;目标服务组件的程序文件是基于微服务注册中心的类型生成的。
具体地,开发人员可以在微服务注册中心上进行程序文件开发,得到目标服务组件的程序文件,并且微服务注册中心可以将目标服务组件的程序文件发送给目标服务器,从而使得目标服务器获取目标服务组件的程序文件。
可选地,按照注册中心的类型划分,微服务注册中心可以为分布式协调服务(Zookeeper)注册中心、服务发现(Eureka)注册中心、注册发现服务与配置服务(Nacos)注册中心、组播(multicast)注册中心、远程字典(redis)注册中心或者服务发布和注册服务(Consul)注册中心等等,不同类型的微服务注册中心的功能不同。在本申请实施例中,目标服务器调用目标服务组件需要与微服务注册中心进行交互,所以目标服务组件的程序文件是基于微服务注册中心的类型生成的,以让目标服务组件与微服务注册中心进行兼容使用。
S400、目标服务器将目标服务组件的程序文件进行编译并打包生成目标服务组件的镜像文件。
需要说明的是,目标服务器在获取到目标服务组件的程序文件后,可以采用服务启动工具对目标服务组件的程序文件进行编译并打包生成目标服务组件的镜像文件。可选地,服务启动工具可以为webpack等等。但在本申请实施例中,服务启动工具为应用服务引擎(docker)。
S500、目标服务器根据目标服务组件的镜像文件,在目标微服务应用所属的调度单元中部署目标服务组件。
可以理解的是,kubernetes集群中的每个调度单元中均部署有一个微服务应用和一个服务组件,以便目标服务器可以调用每个调度单元中的服务组件从kubernetes集群的管理中心内各调度单元中的微服务应用的调用地址,并将各调度单元中的微服务应用的调用地址存储至微服务注册中心中。
本申请实施例提供的微服务应用调用方法可以获取目标服务组件的程序文件,将目标服务组件的程序文件进行编译并打包生成目标服务组件的镜像文件,并根据目标服务组件的镜像文件,在目标微服务应用所属的调度单元中部署目标服务组件,该方法通过开发部署服务组件,来实现在不更改原有微服务应用的代码的前提下解决服务集群内微服务应用无法完成跨服务集群调用微服务应用的问题;同时,该方法仅需要在服务集群内的调度单元中部署服务组件就可以实现外服务集群中的微服务应用调用服务集群内的微服务应,不需要在部署服务集群内的微服务应用时执行对服务集群内微服务应用的代码进行修改的过程,进而能够达到平滑部署的效果。
在一些场景中,微服务应用的IP地址和调用地址在表达上可能存储细微差别,因此,需要采用一种配置方式防止微服务应用的IP地址注册至微服务注册中心中,在微服务应用从微服务注册中心查找待调用的微服务应用的调用地址时,避免出现将微服务应用的IP地址和调用地址混淆导致查找结果不准确的情况。在一实施例中,在目标微服务应用所属的调度单元中部署目标服务组件之后,上述微服务应用调用方法还可以包括:将目标微服务应用的服务方式配置为只发现不注册的模式。
具体地,目标服务器在将目标微服务应用和目标服务组件部署后,可以对目标微服务应用的服务方式进行配置。可选地,目标微服务应用的服务方式可以为既发现又注册、不发现不注册、不发现只注册等等模式。但在本申请实施例中,为了避免将目标微服务应用的无效树形信息存储至微服务注册中心,可以将目标微服务应用的服务方式配置为只发现不注册的模式。
其中,在目标微服务应用所属的调度单元中部署目标服务组件时,上述微服务应用调用方法还可以包括:将目标服务组件的所属调度单元与第一集群中的管理中心的服务账户进行绑定。
需要说明的是,目标服务器在目标微服务应用所属的调度单元中部署目标服务组件时,可以在调度单元的配置文件中配置第一集群中的管理中心为目标服务组件配置的服务账户(即serviceaccount),以将目标服务组件的所属调度单元与第一集群中的管理中心的服务账户进行绑定,从而使得调度单元中的目标服务组件有访问管理中心的权限,同时管理中心还能够为目标服务组件服务相应的功能。
另外,调度单元的配置文件中还配置有调度单元内微服务应用和服务组件的相关信息,以将微服务应用和服务组件绑定至该调度单元中。
在本申请实施例中,管理中心为不同服务组件配置的管理中心的服务账户不同。同时,第一集群中的各调度单元中的服务组件的配置文件中均配置有第一集群中的管理中心为目标服务组件配置的服务账户。
在实际应用时,管理中心中存储的信息还可以包括为第一集群内各调度单元中的服务组件配置的管理中心的服务账户和管理中心对各调度单元中的服务组件可开放的权限功能(即角色,role)。可选地,管理中心对各调度单元中的服务组件可开放的权限功能可以理解为管理中心能够为目标服务组件服务相应的功能,如信息查询、信息处理、信息存储等功能。
其中,管理中心可以通过rolebinding(即角色绑定)对第一集群内各调度单元中的服务组件配置的管理中心的服务账户与对应服务组件可开放的权限功能进行绑定,以便管理中心能够根据绑定结果和服务组件的配置文件中配置的管理中心的服务账户为服务组件开启对应的服务功能。
本申请实施例提供的微服务应用调用方法可以在目标微服务应用所属的调度单元中部署目标服务组件之后,将目标微服务应用的服务方式配置为只发现不注册的模式,从而能够防止微服务应用的IP地址注册至微服务注册中心中,在微服务应用从微服务注册中心查找待调用的微服务应用的调用地址时,避免出现将微服务应用的IP地址和调用地址混淆导致查找结果不准确的情况;同时,该方法能够防止微服务应用的IP地址注册至微服务注册中心中,进一步还可以减小IP资源占用内存。
为了便于本领域技术人员的理解,以执行主体为微服务应用调用系统中的应用服务节点为例介绍本申请提供的微服务应用调用方法,具体的,该方法包括:
(1)目标服务器获取目标服务组件的程序文件;目标服务组件的程序文件是基于微服务注册中心的类型生成的。
(2)目标服务器将目标服务组件的程序文件进行编译并打包生成目标服务组件的镜像文件。
(3)目标服务器根据目标服务组件的镜像文件,在目标微服务应用所属的调度单元中部署目标服务组件。
(4)目标服务器将目标微服务应用的服务方式配置为只发现不注册的模式,并将目标服务组件的所属调度单元与第一集群中的管理中心的服务账户进行绑定。
(5)目标服务器调用目标服务组件根据目标微服务应用的标识和/或目标微服务应用所属的调度单元的标识,在管理中心存储的多个微服务应用的映射信息中进行匹配;映射信息为微服务应用的标识和/或各微服务应用所属的调度单元的标识与调用地址之间的对应关系。
(6)目标服务器调用目标服务组件将映射关系中匹配成功的调用地址确定为目标微服务应用的调用地址。
(7)目标服务器调用目标服务组件将目标微服务应用的调用地址与目标微服务应用的标识信息发送至微服务注册中心,以指示微服务注册中心对目标微服务应用的调用地址与目标微服务应用的标识信息进行存储,以使第二集群中任一个服务器根据调用地址调用目标微服务应用;第二集群与第一集群为不同的集群。
以上(1)至(7)的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种微服务应用调用装置,包括:调用地址获取模块11和调用地址存储模块12,其中:
调用地址获取模块11,用于调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址;目标服务组件与目标微服务应用部署在目标服务器中的同一个调度单元中,目标服务器为第一集群中的任一个服务器;
调用地址存储模块12,用于调用目标服务组件将调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据调用地址调用目标微服务应用;第二集群与第一集群为不同的集群。
本申请实施例提供的微服务应用调用装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,调用地址获取模块11包括:匹配单元和调用地址确定单元,其中:
匹配单元,用于调用目标服务组件根据目标微服务应用的标识信息,在管理中心存储的多个微服务应用的映射信息中进行匹配;映射信息为各微服务应用的标识信息与调用地址之间的对应关系;
调用地址确定单元,用于将映射关系中匹配成功的调用地址确定为目标微服务应用的调用地址。
其中,标识信息为根据微服务应用的标识和/或微服务应用所属的调度单元的标识生成。
本申请实施例提供的微服务应用调用装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,调用地址存储模块12具体用于调用目标服务组件将目标微服务应用的调用地址与目标微服务应用的标识信息发送至微服务注册中心,以指示微服务注册中心对目标微服务应用的调用地址与目标微服务应用的标识信息进行存储。
本申请实施例提供的微服务应用调用装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,微服务应用调用装置还包括:程序文件获取模块、镜像文件生成模块和服务组件部署模块,其中:
程序文件获取模块,用于获取目标服务组件的程序文件;目标服务组件的程序文件是基于微服务注册中心的类型生成的;
镜像文件生成模块,用于将目标服务组件的程序文件进行编译并打包生成目标服务组件的镜像文件;
服务组件部署模块,用于根据目标服务组件的镜像文件,在目标微服务应用所属的调度单元中部署目标服务组件。
本申请实施例提供的微服务应用调用装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,微服务应用调用装置还包括:配置模块,其中:
配置模块,用于将目标微服务应用的服务方式配置为只发现不注册的模式。
本申请实施例提供的微服务应用调用装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,微服务应用调用装置还包括:服务账户绑定模块,其中:
服务账户绑定模块,用于在目标微服务应用所属的调度单元中部署目标服务组件时,将目标服务组件的所属调度单元与第一集群中的管理中心的服务账户进行绑定。
本申请实施例提供的微服务应用调用装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于微服务应用调用装置的具体限定可以参见上文中对于微服务应用调用方法的限定,在此不再赘述。上述微服务应用调用装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备器的内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储目标数据处理请求。该计算机设备的网络接口用于与外部的终点通过网络连接通信。该计算机程序被处理器执行时以实现一种微服务应用调用方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
目标服务器调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址;目标服务组件与目标微服务应用部署在目标服务器中的同一个调度单元中,目标服务器为第一集群中的任一个服务器;
目标服务器调用目标服务组件将调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据调用地址调用目标微服务应用;第二集群与第一集群为不同的集群。
在一个实施例中,提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
目标服务器调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址;目标服务组件与目标微服务应用部署在目标服务器中的同一个调度单元中,目标服务器为第一集群中的任一个服务器;
目标服务器调用目标服务组件将调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据调用地址调用目标微服务应用;第二集群与第一集群为不同的集群。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
目标服务器调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址;目标服务组件与目标微服务应用部署在目标服务器中的同一个调度单元中,目标服务器为第一集群中的任一个服务器;
目标服务器调用目标服务组件将调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据调用地址调用目标微服务应用;第二集群与第一集群为不同的集群。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种微服务应用调用方法,其特征在于,所述方法包括:
目标服务器调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址;所述目标服务组件与所述目标微服务应用部署在所述目标服务器中的同一个调度单元中,所述目标服务器为所述第一集群中的任一个服务器;
所述目标服务器调用所述目标服务组件将所述调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据所述调用地址调用所述目标微服务应用;所述第二集群与所述第一集群为不同的集群。
2.根据权利要求1所述的方法,其特征在于,所述目标服务器调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址,包括:
所述目标服务器调用目标服务组件根据所述目标微服务应用的标识信息,在所述管理中心存储的多个微服务应用的映射信息中进行匹配;所述映射信息为各微服务应用的标识信息与调用地址之间的对应关系;
将所述映射关系中匹配成功的调用地址确定为所述目标微服务应用的调用地址。
3.根据权利要求2所述的方法,其特征在于,所述标识信息为根据微服务应用的标识和/或微服务应用所属的调度单元的标识生成。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述目标服务器调用所述目标服务组件将所述调用地址存储至微服务注册中心中,包括:
所述目标服务器调用所述目标服务组件将所述目标微服务应用的调用地址与所述目标微服务应用的标识信息发送至所述微服务注册中心,以指示所述微服务注册中心对所述目标微服务应用的调用地址与所述目标微服务应用的标识信息进行存储。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
所述目标服务器获取所述目标服务组件的程序文件;所述目标服务组件的程序文件是基于所述微服务注册中心的类型生成的;
所述目标服务器将所述目标服务组件的程序文件进行编译并打包生成所述目标服务组件的镜像文件;
所述目标服务器根据所述目标服务组件的镜像文件,在所述目标微服务应用所属的调度单元中部署所述目标服务组件。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述目标微服务应用所属的调度单元中部署所述目标服务组件之后,将所述目标微服务应用的服务方式配置为只发现不注册的模式。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述目标微服务应用所属的调度单元中部署所述目标服务组件时,将所述目标服务组件的所属调度单元与所述第一集群中的管理中心的服务账户进行绑定。
8.一种微服务应用调用装置,其特征在于,所述装置包括:
调用地址获取模块,用于调用目标服务组件从第一集群的管理中心中获取目标微服务应用的调用地址;所述目标服务组件与所述目标微服务应用部署在所述目标服务器中的同一个调度单元中,所述目标服务器为所述第一集群中的任一个服务器;
调用地址存储模块,用于调用所述目标服务组件将所述调用地址存储至微服务注册中心中,以使第二集群中任一个服务器根据所述调用地址调用所述目标微服务应用;所述第二集群与所述第一集群为不同的集群。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述的微服务应用调用方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的微服务应用调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210659723.7A CN115174657A (zh) | 2022-06-13 | 2022-06-13 | 微服务应用调用方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210659723.7A CN115174657A (zh) | 2022-06-13 | 2022-06-13 | 微服务应用调用方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115174657A true CN115174657A (zh) | 2022-10-11 |
Family
ID=83484824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210659723.7A Pending CN115174657A (zh) | 2022-06-13 | 2022-06-13 | 微服务应用调用方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174657A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190317824A1 (en) * | 2018-04-11 | 2019-10-17 | Microsoft Technology Licensing, Llc | Deployment of services across clusters of nodes |
US20200364096A1 (en) * | 2019-05-17 | 2020-11-19 | Citrix Systems, Inc. | Automatically replicate api calls to separate data centers |
US20200401457A1 (en) * | 2019-06-18 | 2020-12-24 | Nutanix, Inc. | Deploying microservices into virtualized computing systems |
CN112433863A (zh) * | 2020-11-18 | 2021-03-02 | 平安消费金融有限公司 | 微服务调用方法、装置、终端设备以及存储介质 |
CN113032126A (zh) * | 2021-04-07 | 2021-06-25 | 北京理工大学 | 一种高并发云工作流调度引擎跨集群通信系统及方法 |
CN113746887A (zh) * | 2020-11-05 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种跨集群数据请求处理方法、设备及存储介质 |
CN114040020A (zh) * | 2021-10-08 | 2022-02-11 | 杭州隆埠科技有限公司 | 跨集群服务调用的方法及系统 |
CN114153566A (zh) * | 2021-12-20 | 2022-03-08 | 浪潮电子信息产业股份有限公司 | 跨处理器架构多容器集群间服务发现方法、装置及设备 |
-
2022
- 2022-06-13 CN CN202210659723.7A patent/CN115174657A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190317824A1 (en) * | 2018-04-11 | 2019-10-17 | Microsoft Technology Licensing, Llc | Deployment of services across clusters of nodes |
US20200364096A1 (en) * | 2019-05-17 | 2020-11-19 | Citrix Systems, Inc. | Automatically replicate api calls to separate data centers |
US20200401457A1 (en) * | 2019-06-18 | 2020-12-24 | Nutanix, Inc. | Deploying microservices into virtualized computing systems |
CN113746887A (zh) * | 2020-11-05 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种跨集群数据请求处理方法、设备及存储介质 |
CN112433863A (zh) * | 2020-11-18 | 2021-03-02 | 平安消费金融有限公司 | 微服务调用方法、装置、终端设备以及存储介质 |
CN113032126A (zh) * | 2021-04-07 | 2021-06-25 | 北京理工大学 | 一种高并发云工作流调度引擎跨集群通信系统及方法 |
CN114040020A (zh) * | 2021-10-08 | 2022-02-11 | 杭州隆埠科技有限公司 | 跨集群服务调用的方法及系统 |
CN114153566A (zh) * | 2021-12-20 | 2022-03-08 | 浪潮电子信息产业股份有限公司 | 跨处理器架构多容器集群间服务发现方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003480B2 (en) | Container deployment method, communication method between services, and related apparatus | |
CN109104467B (zh) | 开发环境构建方法、装置以及平台系统和存储介质 | |
CN113746887B (zh) | 一种跨集群数据请求处理方法、设备及存储介质 | |
CN107145380B (zh) | 虚拟资源编排方法及装置 | |
US5848234A (en) | Object procedure messaging facility | |
CN111814177A (zh) | 基于微服务的多租户数据处理方法、装置、设备及系统 | |
CN111641515B (zh) | Vnf的生命周期管理方法及装置 | |
US10992575B2 (en) | Assignment of internet protocol addresses to services | |
CN112311568B (zh) | 一种虚拟网络创建方法、装置及计算机存储介质 | |
CN111124589B (zh) | 一种服务发现系统、方法、装置及设备 | |
CN112671860A (zh) | 用于kubernetes集群的服务访问方法、系统、电子设备及介质 | |
CN111858083B (zh) | 一种远程服务的调用方法、装置、电子设备及存储介质 | |
CN115086166B (zh) | 计算系统、容器网络配置方法及存储介质 | |
CN112165502B (zh) | 服务发现系统、方法及第二服务器 | |
WO2001093038A2 (en) | Scalable java servers for network server applications | |
CN112333017A (zh) | 一种服务配置方法、装置、设备及存储介质 | |
CN114448895A (zh) | 一种应用访问方法、装置、设备及介质 | |
CN112882794B (zh) | pod扩容方法、装置、节点及存储介质 | |
CN112698930B (zh) | 一种获取服务器标识的方法、装置、设备及介质 | |
CN113672368A (zh) | 任务调度方法及系统 | |
CN115174657A (zh) | 微服务应用调用方法、装置、计算机设备及存储介质 | |
CN109445960A (zh) | 应用的路由方法、装置及存储介质 | |
US6745250B1 (en) | Finding named EJB homes via life cycle support | |
CN113918215A (zh) | 一种微服务配置系统、设备及介质 | |
CN111382326A (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 |