[go: up one dir, main page]

CN118200399A - 服务调用系统、方法、装置、电子设备及存储介质 - Google Patents

服务调用系统、方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN118200399A
CN118200399A CN202410232607.6A CN202410232607A CN118200399A CN 118200399 A CN118200399 A CN 118200399A CN 202410232607 A CN202410232607 A CN 202410232607A CN 118200399 A CN118200399 A CN 118200399A
Authority
CN
China
Prior art keywords
microservice
remote
address information
local
registration center
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
Application number
CN202410232607.6A
Other languages
English (en)
Inventor
张峰
李笑忠
林坤
龚杰鑫
王旭涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202410232607.6A priority Critical patent/CN118200399A/zh
Publication of CN118200399A publication Critical patent/CN118200399A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0273Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供服务调用系统、方法、装置、电子设备及存储介质,涉及信息化软件系统领域,用于降低服务调用系统的维护成本,提高微服务的调用效率和稳定性。该方法包括:从远端注册中心中获取多个远端微服务的地址信息;从多个远端微服务的地址信息中筛选出调用清单记载的第一微服务的地址信息;将第一微服务的地址信息,发送给本地注册中心,以使得本地注册中心在接收到本地设备对第一微服务的调用请求时,能够返回第一微服务的地址信息。

Description

服务调用系统、方法、装置、电子设备及存储介质
技术领域
本申请涉及信息化软件系统领域,尤其涉及服务调用系统、方法、装置、电子设备及存储介质。
背景技术
软件即服务(software-as-a-service,SaaS)是一种基于互联网提供软件服务的软件应用模式。随着互联网技术的发展和应用软件的成熟,SaaS逐步兴起,成为软件科技发展的趋势。
传统的SaaS微服务架构通常基于同一注册中心部署服务,这使得在客户侧(即本地设备)下沉部署业务的需求难以满足。如果针对不同客户的业务需求进行软件服务的定制开发,可能导致时间和人员的成本增加。此外,软件服务的定制开发也可能导致同一业务代码的同步问题,长期使用可能引发服务管理混乱。
为了满足在客户侧下沉部署业务的需求,相关技术将一部分微服务部署在本地设备,一部分微服务部署在远端设备。本地设备通过依赖包访问远端注册中心,实现本地设备跨注册中心调用远端设备的微服务。其中,依赖包通常是嵌套在本地设备的程序中的,这意味着每当依赖包进行升级和改造时,本地设备也需要进行相应的修改和适配,由此可见,相关技术对本地设备的维护成本较高。因此,如何在SaaS微服务架构中降低本地设备维护成本成为一个亟待解决的问题。
发明内容
本申请提供一种服务调用系统、方法、装置、电子设备及存储介质,用于降低服务调用系统的维护成本,提高微服务的调用效率和稳定性。
第一方面、本申请提供了一种服务调用系统,该系统包括:本地设备、本地注册中心、远端设备、远端注册中心、通用组件;本地注册中心与远端注册中心通过通用组件进行通信;本地设备与本地注册中心之间通信连接;远端设备与远端注册中心之间通信连接;本地设备中部署有目标应用的多个本地微服务;多个本地微服务均在本地注册中心中注册;通用组件中包括调用清单,调用清单用于记载需要从远端设备中调用的第一微服务的标识;通用组件,用于从远端注册中心中获取多个远端微服务的地址信息,并从多个远端微服务的地址信息中筛选出第一微服务的地址信息发送给本地注册中心;本地注册中心,用于接收本地设备发送的第一调用请求,第一调用请求用于请求调用第一微服务;本地注册中心,还用于向本地设备发送第一调用响应,第一调用响应包括第一位服务的地址信息。
本申请提供的技术方案至少带来以下有益效果:本申请所提供的服务调用系统包括:本地设备、本地注册中心、远端设备、远端注册中心和通用组件;通过通用组件实现本地注册中心与远端注册中心之间的通信,使得本地设备能够调用远端设备中的第一微服务,相比于相关技术中依赖包的升级改进都需要本地设备的同步改进来说,本申请充分降低了开发和维护服务调用系统的成本;此外,本地设备中部署有目标应用的多个本地微服务,多个本地微服务均在本地注册中心中注册,且本地设备通过通用组件从远端注册中心中获取多个远端微服务的地址信息,并从多个远端微服务的地址信息中筛选出第一微服务的地址信息发送给本地注册中心,能够实现本地注册中心对本地微服务和第一微服务的统一管理,简化了微服务的管理流程,降低了服务调用系统的维护成本。
一种可能的实现方式,通用组件能够兼容多种类型的注册中心。
第二方面,本申请提供一种服务调用方法,应用于第一方面的服务调用系统中的通用组件,通用组件包括调用清单,调用清单用于记载需要从远端设备中调用的第一微服务的标识,第一微服务为远端设备中部署的多个远端微服务中的至少一个;该方法包括:从远端注册中心中获取多个远端微服务的地址信息;从多个远端微服务的地址信息中筛选出调用清单记载的第一微服务的地址信息;将第一微服务的地址信息,发送给本地注册中心,以使得本地注册中心在接收到本地设备对第一微服务的调用请求时,能够返回第一微服务的地址信息。
本申请提供的技术方案至少带来以下有益效果:本申请通过通用组件从远端注册中心中获取多个远端微服务的地址信息,并从多个远端微服务的地址信息中筛选出调用清单记载的第一微服务的地址信息,然后将第一微服务的地址信息,发送给本地注册中心,如此,使得本地设备调用第一微服务时可直接从本地注册中心中获取第一微服务的地址信息,相比于传统的本地设备通过依赖包从远端注册中心中获取第一微服务的地址信息的方法,本申请所提供的技术方案简化了远端微服务的调用流程,提高了工作效率;除此之外,相比于相关技术中本地设备采用依赖包(依赖包嵌套在本地设备的程序中,依赖包的升级和改造影响本地设备的程序)从远端注册中心获取远端微服务的地址信息的方法,本申请所采用的独立于本地设备之外的通用组件,可以独立的升级和改造,能够有效降低本地设备和服务调用系统的维护成本。
一种可能的实现方式,上述方法还包括:从远端注册中心中获取第一微服务的服务状态;其中,服务状态包括:服务下线、服务上线、服务续约、服务注册。
一种可能的实现方式,上述方法还包括:根据第一微服务的服务状态确定第一消息,第一消息用于指示本地注册中心对第一微服务的地址信息进行管理;向本地注册中心发送第一消息,以使得本地注册中心基于第一消息对第一微服务进行管理。
第三方面,本申请提供一种服务调用方法,应用于第一方面的服务调用系统中的本地注册中心,该方法包括:接收通用组件发送的第一微服务的地址信息;第一微服务为远端设备中部署的多个远端微服务中的至少一个;第一微服务的地址信息为通用组件基于调用清单从远端注册中心中获取的;其中,调用清单用于记载需要从远端设备中调用的第一微服务的标识;接收本地设备发送的第一调用请求,第一调用请求用于请求调用第一微服务;响应于第一调用请求,向本地设备发送第一微服务的地址信息,以使得本地设备接收第一微服务的地址信息并根据第一微服务的地址信息调用第一微服务。
一种可能的实现方式,上述方法还包括:接收通用组件发送的第一消息,第一消息用于指示本地注册中心对第一微服务的地址信息进行管理;基于第一消息对第一微服务进行管理。
第四方面,本申请提供一种服务调用装置,应用于第一方面的服务调用系统中的通用组件,通用组件包括调用清单,调用清单用于记载需要从远端设备中调用的第一微服务的标识,第一微服务为远端设备中部署的多个远端微服务中的至少一个;该装置包括:获取模块,用于从远端注册中心中获取多个远端微服务的地址信息;筛选模块,用于从多个远端微服务的地址信息中筛选出调用清单记载的第一微服务的地址信息;发送模块,用于将第一微服务的地址信息,发送给本地注册中心,以使得本地注册中心在接收到本地设备对第一微服务的调用请求时,能够返回第一微服务的地址信息。
一种可能的实现方式,获取模块,还用于从远端注册中心中获取第一微服务的服务状态;其中,服务状态包括:服务下线、服务上线、服务续约、服务注册。
另一种可能的实现方式,装置还包括:确定模块,用于根据第一微服务的服务状态确定第一消息,第一消息用于指示本地注册中心对第一微服务的地址信息进行管理。
又一种可能的实现方式,发送模块,还用于向本地注册中心发送第一消息,以使得本地注册中心基于第一消息对第一微服务的地址信息进行管理。
第五方面,本申请提供一种服务调用装置,应用于第一方面的服务调用系统中的本地注册中心,该装置包括:接收模块,用于接收通用组件发送的第一微服务的地址信息;第一微服务为远端设备中部署的多个远端微服务中的至少一个;第一微服务的地址信息为通用组件基于调用清单从远端注册中心中获取的;其中,调用清单用于记载需要从远端设备中调用的第一微服务的标识;接收模块,还用于接收本地设备发送的第一调用请求,第一调用请求用于请求调用第一微服务;发送模块,用于响应于第一调用请求,向本地设备发送第一微服务的地址信息,以使得本地设备接收第一微服务的地址信息并根据第一微服务的地址信息调用第一微服务。
一种可能的实现方式,上述接收模块,还用于接收通用组件发送的第一消息,第一消息用于指示本地注册中心对第一微服务的地址信息进行管理;上述装置还包括:管理模块,用于基于第一消息对第一微服务的地址信息进行管理。
第六方面,本申请提供一种电子设备,该电子设备包括:处理器和存储器;存储器存储有处理器可执行的指令;处理器被配置为执行指令时,使得电子设备实现上述第二方面和第三方面的方法。
第七方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括:计算机软件指令;当计算机软件指令在电子设备中运行时,使得电子设备实现上述第二方面和第三方面的方法。
上述第三方面至第七方面的有益效果参考第一方面和第二方面的对应描述,不再赘述。
附图说明
图1为本申请提供的一种服务调用系统示意图;
图2为本申请提供的一种服务调用方法的流程示意图一;
图3为本申请提供的一种服务调用方法的流程示意图二;
图4为本申请提供的一种通用组件功能示意图;
图5为本申请提供的一种服务调用方法的流程示意图三;
图6为本申请提供的一种通用组件工作示意图;
图7为本申请提供的一种服务调用装置的结构示意图一;
图8为本申请提供的一种服务调用装置的结构示意图二;
图9为本申请提供的一种服务调用装置的结构示意图三。
具体实施方式
下面将结合附图对本申请提供的一种话单数据记录方法进行详细的描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选的还包括其他没有列出的步骤或单元,或可选的还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
如背景技术,在微服务架构中,特别是在SaaS环境中,服务的部署和管理是一项挑战。为了更好地实现这一目标,一些技术采用了本地设备跨多注册中心访问SaaS服务的模式。例如,在Spring Cloud微服务架构中,微服务间的内部调用主要通过注册中心来实现。Spring Cloud作为一套完整的微服务解决方案,集成了各种关键组件,如服务网关、注册中心、配置中心、负载均衡器和断路器等,从而简化了微服务的部署和管理。
然而,传统的SaaS微服务架构通常基于同一注册中心部署服务,这使得在客户侧(即本地设备)下沉部署业务的需求难以满足。针对不同客户的业务需求进行软件服务的定制开发可能导致时间和人员的成本增加。此外,软件服务的定制开发也可能导致同一业务代码的同步问题,长期使用可能引发服务管理混乱。
为了满足在客户侧下沉部署业务的需求,相关技术采用混合部署模式,即将一部分微服务部署在本地设备,一部分微服务部署在远端设备。本地设备通过依赖包访问远端注册中心,实现本地设备跨注册中心调用远端设备的微服务。然而,由于本地设备和远端设备所归属得注册中心的类型可能不同,导致本地设备无法发现远端微服务,使得微服务的调用难以满足业务需求,同时,相关技术中,依赖包的升级改进都需要本地设备的同步改进,维护成本仍然较高。
综上所述,相关技术中仍存在如何改进微服务架构的混合部署模式,降低服务调用系统的维护成本,提高调用微远端服务的效率和稳定性等挑战。
针对上述技术问题,本申请针对微服务架构中的注册中心,开发了一个通用组件。当本地设备所调用的微服务为本地微服务时,通用组件无需启动;当本地设备所调用的微服务为远端微服务时,本地注册中心通过通用组件从远端注册中心获取远端微服务的地址信息并发送给本地注册中心进行存储,以使得本地设备直接从本地注册中心获取远端微服务的地址信息,并根据远端微服务的地址信息调用远端微服务。
具体的,本申请所提供的服务调用方法,其思路在于,在通用组件中配置用于记载需要从远端设备中调用的第一微服务的标识的调用清单,其中,第一微服务为远端设备中部署的多个远端微服务中的至少一个;如此,通用组件在从远端注册中心中获取多个远端微服务的地址信息之后,可以从多个远端微服务的地址信息中筛选出调用清单记载的第一微服务的地址信息,并将第一微服务的地址信息,发送给本地注册中心,以使得本地注册中心在接收到本地设备对第一微服务的调用请求时,能够返回第一微服务的地址信息。
可以理解的是,本申请通过通用组件从远端注册中心中获取多个远端微服务的地址信息,并从多个远端微服务的地址信息中筛选出调用清单记载的第一微服务的地址信息,然后将第一微服务的地址信息,发送给本地注册中心,如此,使得本地设备调用第一微服务时可直接从本地注册中心中获取第一微服务的地址信息,相比于传统的本地设备通过依赖包从远端注册中心中获取第一微服务的地址信息的方法,本申请所提供的技术方案简化了远端微服务的调用流程,提高了工作效率;除此之外,相比于相关技术中本地设备采用依赖包(依赖包嵌套在本地设备的程序中,依赖包的升级和改造影响本地设备的程序)从远端注册中心获取远端微服务的地址信息的方法,本申请所采用的独立于本地设备之外的通用组件,可以独立的升级和改造,能够有效降低本地设备和服务调用系统的维护成本。
下面结合说明书附图,对本申请提供的实施例进行具体介绍。
如图1所示,为本申请实施例提供的一种服务调用系统示意图,该系统包括:本地设备100、本地注册中心200、远端设备300、远端注册中心400、通用组件500。其中,本地注册中心200与远端注册中心400通过通用组件500进行通信;本地设备100与本地注册中心200之间通信连接;远端设备300与远端注册中心400之间通信连接。
本地设备100中部署有目标应用的多个本地微服务;其中,多个本地微服务均在本地注册中心200中注册。
在一些实施例中,本地设备100还能够用于调用远端微服务和本地微服务。
在一些实施例中,本地设备100还用于发送第一调用请求,其中,第一调用请求用于请求调用第一微服务。
在一些实施例中,本地设备100包括部署本地微服务的服务器或终端设备。本地设备100可以与用户进行交互。示例性的,终端设备包括:手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本等。
本地注册中心200,用于接收本地设备100发送的第一调用请求。
在一些实施例中,本地注册中心200,还用于向本地设备100发送第一调用响应,第一调用响应包括第一微服务的地址信息。
在一些实施例中,本地注册中心200包括但不限于Eureka、Nacos、Zookeeper等类型。
远端设备300,用于部署远端微服务。
在一些实施例中,远端设备300可以为部署远端微服务的服务器或终端设备。远端设备300可以与用户进行交互。
远端注册中心400,用于注册远端微服务,并存储和管理远端微服务的地址信息。
在一些实施例中,远端注册中心400的类型可与本地注册中心200的类型相同,也可以与本地注册中心200的类型不同。
通用组件500,用于从远端注册中心400中获取多个远端微服务的地址信息,并从多个远端微服务的地址信息中筛选出第一微服务的地址信息发送给本地注册中心200。
在一些实施例中,通用组件500中包括调用清单,调用清单用于记载需要从远端设备300中调用的第一微服务的标识。
在一些实施例中,通用组件500能够兼容多种类型的注册中心。
示例性的,通用组件500能够兼容Eureka、Nacos、Zookeeper等类型的注册中心。
在一些实施例中,本地注册中心200、远端注册中心400、通用组件500可以是服务器,其中,服务器可以是一个单独的服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。
在一些实施例中,通用组件500可部署在本地设备100上,也可单独部署在服务器上。
需要说明的,本申请实施例描述的系统架构是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
参见图2,为本申请实施例提供的一种服务调用方法的流程示意图一。如图2所示,本申请提供的服务调用方法,具体包括以下步骤S101~S103。
S101、通用组件从远端注册中心中获取多个远端微服务的地址信息。
其中,通用组件包括调用清单,调用清单用于记载需要从远端设备中调用的第一微服务的标识,第一微服务为远端设备中部署的多个远端微服务中的至少一个。
示例性的,假设需要从远端设备中调用的第一微服务包括:远端微服务a、远端微服务b和远端微服务c,则调用清单记载了远端微服务a的标识、远端微服务b的标识和远端微服务c的标识。
在一些实施例中,通用组件根据业务需求配置调用清单的过程中,通用组件使用商用密码算法SM4分组密码(commercial cryptography algorithm sm4 block cipher,SM4)对调用清单进行加密,以确保调用清单的安全性和可靠性。
在一些实施例中,远端微服务部署在远端设备中,并在远端注册中心中进行注册。其中,远端注册中心还用于存储已注册的远端微服务的地址信息。当通用组件需要获取远端微服务的地址信息时,通用组件从远端注册中心中获取在远端注册中心中已注册过的全部的远端微服务的地址信息。
示例性的,假设在远端注册中心中已经注册过的远端微服务包括:远端微服务a、远端微服务b和远端微服务c;当通用组件需要获取远端微服务的地址信息时,远端注册中心将远端微服务a的地址信息、远端微服务b的地址信息和远端微服务c的地址信息全部发送给通用组件。
可以理解的是,将远端微服务的地址信息存储在远端注册中心中能够方便远端注册中心对远端微服务进行管理,此外,还能够便于通用组件获取远端微服务的地址信息。
S102、通用组件从多个远端微服务的地址信息中筛选出调用清单记载的第一微服务的地址信息。
在一些实施例中,上述步骤S102可以具体实现为:通用组件根据调用清单所记载的第一微服务的标识确定需要从远端设备中调用的第一微服务,然后从多个远端微服务的地址信息中筛选出第一微服务的地址信息。
示例性的,假设调用清单所记载的第一微服务的标识符包括:远端微服务a的标识、远端微服务b的标识;根据调用清单确定本地设备需要从远端设备调用的第一微服务包括远端微服务a和远端微服务b;然后,通用组件从多个远端微服务的地址信息中筛选出远端微服务a的地址信息和远端微服务b的地址信息。
可以理解的是,本申请采用调用清单来记载需要从远端设备中调用的第一微服务的标识,如此,在通用组件从远端注册中心获取了多个远端微服务的地址信息之后,可以基于调用清单从多个远端微服务的地址信息中明确筛选出第一微服务的地址信息,有助于提高后续调用远端微服务的准确性。
在一些实施例中,调用清单的配置还能够避免本地微服务与远端微服务之间因名称相同而产生冲突。在混合部署的微服务架构中,由于本地和远端环境可能各自部署了不同但名称相同的微服务,因此,在配置调用清单时,通用组件需要确保所调用清单所包含的远端微服务(即第一微服务)与本地已部署的本地微服务不重复。
示例性的,假设系统A所需要的微服务包括微服务1、微服务2、微服务3和微服务4;本地设备部署的微服务包括:微服务1和微服务2;远端设备部署的微服务包括:微服务1、微服务3和微服务4;为了满足系统A的微服务需求,调用清单中只包含了微服务3的标识和微服务4的标识。从上可以看出,由于本地设备中已经存在微服务1,为了确保调用的准确性,避免微服务的命名冲突,配置调用清单时无需在调用清单中配置微服务1的标识。总的来说,调用清单中只包含系统A需要但本地设备未提供的微服务的标识。可以理解的是,通过这种方式,通用组件能够确保本地微服务和远端微服务调用的正确性和准确性。
S103、通用组件将第一微服务的地址信息,发送给本地注册中心;相应地,本地注册中心接收通用组件发送的第一微服务的地址信息。
在一些实施例中,在通用组件筛选出第一微服务的地址信息后,将第一微服务的地址信息发送给本地注册中心,本地注册中心接收第一微服务的地址信息,并将第一微服务的地址信息存储在列表等数据结构中。
在一些实施例中,本地注册中心的列表等数据结构还能够存储本地微服务的地址信息。
可以理解的是,通过通用组件将第一微服务的地址信息发送给本地注册中心进行存储和管理,一方面能够方便对远端微服务的地址信息和本地微服务的地址信息进行管理,另一方面能够简化远端微服务的调用流程,提高了工作效率。
需要说明的是,由于通用组件能够兼容多种类型的注册中心,因此,无论本地注册中心和远端注册中心是否为同一类型的注册中心,通用组件都能实现本地注册中心与远端注册中心之间的通信交互。为了实现这一兼容性,开发者在通用组件的特定目录下创建了注册中心的接口开发包。这使得通用组件能够适应并集成多种类型的注册中心,从而保证了其广泛的应用范围和灵活性。
在一些实施例中,远端注册中心先于本地设备和本地注册中心启动和运行。在通用组件在初始化启动后,通用组件从远端注册中心中获取多个远端微服务的地址信息,并根据调用清单筛选第一微服务的地址信息,并将第一微服务的地址信息同步到本地注册中心。因此,当本地设备需要调用远端微服务(即第一微服务)时,本地设备可以直接从本地注册中心获取第一微服务的地址信息,即如图3所示,当本地设备需要调用第一微服务时,服务调用方法还包括以下步骤S201~S203。
S201、本地设备向本地注册中心发送第一调用请求;相应地,本地注册中心接收本地设备发送的第一调用请求。其中,第一调用请求用于请求调用第一微服务。
在一些实施例中,第一调用请求包括第一微服务的标识;本地注册中心可以根据第一微服务的标识确定本地设备所调用的第一微服务。
示例性的,假设当本地设备需要调用微服务1时,本地设备向本地注册中心发送第一调用请求,其中,第一调用请求用于请求微服务1,第一调用请求包括微服务1的标识;相应地,本地注册中心接收第一调用请求。
S202、响应于第一调用请求,本地注册中心向本地设备发送第一微服务的地址信息,相应地,本地设备接收第一微服务的地址信息。
在一些实施例中,在本地注册中心接收第一调用请求后,本地注册中心能够识别第一调用请求所包括的第一微服务的标识,然后根据第一微服务的标识查找到第一微服务的地址信息,并将第一微服务的地址信息发送给本地设备。
示例性的,假设在本地注册中心接收到第一调用请求后,本地注册中心识别到第一调用请求所包括的第一微服务的标识为微服务1的标识,然后本地注册中心能够根据微服务1的标识查找到微服务1的地址信息,并将微服务1的地址信息返回给本地设备。
S203、本地设备根据第一微服务的地址信息调用第一微服务。
示例性的,假设第一微服务的地址信息为第一微服务的实际网络地址时,本地设备可以根据第一微服务的实际网络地址向远端设备发送网络连建立请求,其中,该网络连接建立请求用于请求本地设备与远端设备之间建立通信通道,通过该通信通道实现本地设备与远端设备之间的数据交互,从而实现本地设备从远端设备调用第一微服务。
可以理解的是,采用本地注册中心存储的远端微服务的地址信息的方法使得本地设备调用远端微服务时能够直接从本地注册中心获取远端微服务的地址信息,避免本地设备调用远端微服务时从通过依赖包从远端注册中心获取远端微服务的地址信息,简化了本地设备调用远端微服务的流程,提高了工作效率。
在一些实施例中,当本地设备需要调用本地微服务时,本地设备可以向本地注册中心发送第二调用请求,其中,第二调用请求用于请求调用本地微服务;本地注册中心接收到第二调用请求后,将本地微服务的地址信息返回给本地设备,相应地,本地设备接收本地微服务的地址信息并根据本地微服务的地址信息调用本地微服务。
在一些实施例中,如图4所示,通用组件还能够用于获取第一微服务的服务状态,并指示本地注册中心对第一微服务的地址信息进行管理,其中,第一微服务的服务状态包括服务下线、服务上线、服务续约、服务注册。
在一些实施例中,在本地设备调用第一微服务的过程中,本申请所提供的服务调用方法还包括:通用组件从远端注册中心获取第一微服务的服务状态。
在一些实施例中,远端注册中心实时根据远端设备所部署的远端微服务的服务状态变更远端注册中心中所存储的远端微服务的服务状态;通用组件实时从远端注册中心订阅调用清单中所包括的第一微服务的标识对应的远端微服务的服务状态消息,以此获取第一微服务的服务状态。
示例性的,假设调用清单中所记载的第一微服务的标识包括远端微服务a和远端微服务b,则远端注册中心实时向通用组件推送远端微服务a的服务状态消息和远端微服务b的服务状态消息。
可以理解的是,本申请采用通用组件订阅调用清单中所包括的第一微服务的标识对应的远端微服务的服务状态,相比与通用组件通过轮询的方式从远端注册中心获取全部远端微服务的服务状态来说,本申请所采用的对微服务的服务状态的监测方式有效提高了监测微服务的服务状态的效率。
在一些实施例中,如图5所示,在通用组件从远端注册中心获取第一微服务的服务状态后,本申请所提供的服务调用方法还包括以下步骤S401~S403。
S401、通用组件根据第一微服务的服务状态确定第一消息。
其中,第一消息用于指示本地注册中心对第一微服务的地址信息进行管理。
在一些实施例中,上述步骤S401具体实现为以下步骤。
步骤a1、通用组件根据第一微服务的服务状态确定第一微服务的管理方式。
在一些实施例中,如下表1所示为第一微服务的服务状态与第一微服务的管理方式对应关系表。
表1
其中,如表1所示,当第一微服务的服务状态为服务下线时,第一微服务的管理方式为删除第一微服务的地址信息;当第一微服务的服务状态为服务注册或服务上线时,第一微服务的管理方式为写入第一微服务的地址信息;当第一微服务的服务状态为服务续约时,第一微服务的管理方式为第一微服务的地址信息不变更。
在一些实施例中,当通用组件获取第一微服务的服务状态后,通用组件根据如表1所示的第一微服务的服务状态与第一微服务的管理方式之间的对应关系确定第一微服务的管理方式。
步骤a2、通用组件根据第一微服务的服务状态和第一为微服务的管理方式生成第一消息。
其中,第一消息包括第一微服务的服务状态和第一微服务的管理方式。
在一些实施例中,在通用组件根据第一微服务的服务地址确定第一微服务的管理方式后,通用组件可以将第一微服务的服务地址和第一微服务的管理方式进行合并生成第一消息。
示例性的,在第一微服务的服务状态为服务下线,第一微服务的管理方式为删除第一微服务的地址信息的情况下,第一消息用于指示本地注册中心删除第一微服务的地址信息。
示例性的,在第一微服务的服务状态为服务注册或服务上线,第一微服务的管理方式为写入第一微服务的地址信息的情况下,第一消息用于指示本地注册中心写入第一微服务的地址信息。
示例性的,在第一微服务的服务状态为服务续约,第一微服务的管理方式为第一微服务的地址信息不变更的情况下,第一消息用于指示第一微服务的地址信息不做变更。
S402、通用组件向本地注册中心发送第一消息;相应地,本地注册中心接收通用组件发送的第一消息。
在一些实施例中,当通用组件生成第一消息后,将第一消息发送给本地注册中心,相应地,本地注册中心能够接收通用组件发送的第一消息。
其中,通用组件向本地注册中心发送的第一消息包括用于指示本地注册中心删除第一微服务的地址信息的第一消息,用于指示本地注册中心写入第一微服务的地址信息的第一消息,用于指示第一微服务的地址信息不做变更的第一消息。
S403、本地注册中心基于第一消息对第一微服务的地址信息进行管理。
在一些实施例中,在本地注册中心收到第一消息后,本地注册中心根据第一消息的指示对第一微服务的地址信息进行管理。具体实现为:在第一消息用于指示本地注册中心删除第一微服务的地址信息时管理方式,本地注册中心对第一微服务的地址信息进行删除;在第一消息用于指示本地注册中心写入第一微服务的地址信息管理方式时,本地注册中心写入第一微服务的地址信息;在第一消息用于指示第一微服务的地址信息不做变更时管理方式,本地注册中心对第一微服务的地址信息不做任何操作。
可以理解的是,本地注册中心能够通过通用组件实时获取第一微服务的服务状态,并根据第一微服务的服务状态确定第一微服务的管理方式,然后根据第一微服务的服务状态和第一微服务的管理方式生成第一消息,从而实现本地注册中心对第一微服务的地址信息进行及时的管理。
综上所述,如图6所示,本申请通过开发一个兼容多种类型注册中心的通用组件,然后通过通用组件实现调用清单的配置,获取多个远端微服务的地址信息并筛选第一微服务的地址信息,监测和同步第一微服务的服务状态等功能一步步为本地设备调用远端微服务提供了调用基础。从上可以看出,本申请所提供的技术方案既能提高调用远端微服务的工作效率,还能降低维护服务调用系统的成本。
可以看出,上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,本申请实施例提供了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本申请实施例可以根据上述方法示例对网络节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
参见图7,为本申请实施例提供的一种服务调用装置的结构示意图一。如图7所示装置中各模块具有实现图2、图3和图5中各个步骤的功能,并能达到其相应技术效果。如图7所示,服务调用装置700应用于图1中的服务调用系统中的通用组件,通用组件包括调用清单,调用清单用于记载需要从远端设备中调用的第一微服务的标识,第一微服务为远端设备中部署的多个远端微服务中的至少一个;服务调用装置700包括:
获取模块701,用于从远端注册中心中获取多个远端微服务的地址信息。
筛选模块702,用于从多个远端微服务的地址信息中筛选出调用清单记载的第一微服务的地址信息。
发送模块703,用于将第一微服务的地址信息,发送给本地注册中心,以使得本地注册中心在接收到本地设备对第一微服务的调用请求时,能够返回第一微服务的地址信息。
在一些实施例中,获取模块701,还用于从远端注册中心中获取第一微服务的服务状态;其中,服务状态包括:服务下线、服务上线、服务续约、服务注册。
在一些实施例中,服务调用装置700还包括:确定模块704,用于根据第一微服务的服务状态确定第一消息,第一消息用于指示本地注册中心对第一微服务的地址信息进行管理。
在一些实施例中,发送模块701,还用于向本地注册中心发送第一消息,以使得本地注册中心基于第一消息对第一微服务的地址信息进行管理。
参见图8,为本申请实施例提供的一种服务调用装置的结构示意图二。如图8所示装置中各模块具有实现图2、图3和图5中各个步骤的功能,并能达到其相应技术效果。如图8所示,服务调用装置800应用于图1中的服务调用系统中的本地注册中心,该装置包括:
接收模块801,用于接收通用组件发送的第一微服务的地址信息;第一微服务为远端设备中部署的多个远端微服务中的至少一个;第一微服务的地址信息为通用组件基于调用清单从远端注册中心中获取的;其中,调用清单用于记载需要从远端设备中调用的第一微服务的标识。
接收模块801,还用于接收本地设备发送的第一调用请求,第一调用请求用于请求调用第一微服务。
发送模块802,用于响应于第一调用请求,向本地设备发送第一微服务的地址信息,以使得本地设备接收第一微服务的地址信息并根据第一微服务的地址信息调用第一微服务。
在一些实施例中,上述接收模块801,还用于接收通用组件发送的第一消息,第一消息用于指示本地注册中心对第一微服务的地址信息进行管理。
在一些实施例中,上述装置还包括:管理模块803,用于基于第一消息对第一微服务的地址信息进行管理。
在采用硬件的形式实现上述集成的模块的功能的情况下,本发明实施例提供了一种服务调用装置的结构示意图三。如图9所示,该服务调用装置900包括:处理器902,通信接口903,总线904。可选的,该服务调用装置还可以包括存储器901。
处理器902,可以是实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器902可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器902也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
通信接口903,用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,WLAN)等。
存储器901,可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
作为一种可能的实现方式,存储器901可以独立于处理器902存在,存储器901可以通过总线904与处理器902相连接,用于存储指令或者程序代码。处理器902调用并执行存储器901中存储的指令或程序代码时,能够实现本发明实施例提供的服务调用方法。
另一种可能的实现方式中,存储器901也可以和处理器902集成在一起。
总线904,可以是扩展工业标准结构(extended industry standardarchitecture,EISA1)总线等。总线904可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务调用装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本申请实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机指令来指示相关的硬件完成,该程序可存储于上述计算机可读存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。计算机可读存储介质可以是前述任一实施例的或内存。上述计算机可读存储介质也可以是上述服务调用装置的外部存储设备,例如上述服务调用装置上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,上述计算机可读存储介质还可以既包括上述服务调用装置的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述服务调用装置所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供一种计算机程序产品,该计算机产品包含计算机程序,当该计算机程序产品在计算机上运行时,使得该计算机执行上述实施例中所提供的任一项服务调用方法。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种服务调用系统,其特征在于,包括:本地设备、本地注册中心、远端设备、远端注册中心、通用组件;所述本地注册中心与所述远端注册中心通过所述通用组件进行通信;所述本地设备与所述本地注册中心之间通信连接;所述远端设备与所述远端注册中心之间通信连接;
所述本地设备中部署有目标应用的多个本地微服务;所述多个本地微服务均在所述本地注册中心中注册;
所述通用组件中包括调用清单,所述调用清单用于记载需要从所述远端设备中调用的第一微服务的标识;
所述通用组件,用于从所述远端注册中心中获取所述多个远端微服务的地址信息,并从所述多个远端微服务的地址信息中筛选出所述第一微服务的地址信息发送给所述本地注册中心;
所述本地注册中心,用于接收所述本地设备发送的第一调用请求,所述第一调用请求用于请求调用所述第一微服务;
所述本地注册中心,还用于向所述本地设备发送第一调用响应,所述第一调用响应包括所述第一位服务的地址信息。
2.根据权利要求1所述的系统,其特征在于,所述通用组件能够兼容多种类型的注册中心。
3.一种服务调用方法,其特征在于,应用于如权利要求1或2所述的服务调用系统中的通用组件,所述通用组件包括调用清单,所述调用清单用于记载需要从远端设备中调用的第一微服务的标识,所述第一微服务为远端设备中部署的多个远端微服务中的至少一个;所述方法包括:
从远端注册中心中获取多个远端微服务的地址信息;
从所述多个远端微服务的地址信息中筛选出所述调用清单记载的所述第一微服务的地址信息;
将所述第一微服务的地址信息,发送给本地注册中心,以使得所述本地注册中心在接收到本地设备对所述第一微服务的调用请求时,能够返回所述第一微服务的地址信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
从所述远端注册中心中获取所述第一微服务的服务状态;其中,所述服务状态包括:服务下线、服务上线、服务续约、服务注册。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述第一微服务的服务状态确定第一消息,所述第一消息用于指示所述本地注册中心对所述第一微服务的地址信息进行管理;
向所述本地注册中心发送所述第一消息,以使得所述本地注册中心基于所述第一消息对所述第一微服务的地址信息进行管理。
6.一种服务调用方法,其特征在于,应用于如权利要求1或2所述的服务调用系统中的本地注册中心,所述方法包括:
接收所述通用组件发送的第一微服务的地址信息;所述第一微服务为远端设备中部署的多个远端微服务中的至少一个;所述第一微服务的地址信息为所述通用组件基于调用清单从远端注册中心中获取的;其中,调用清单用于记载需要从远端设备中调用的所述第一微服务的标识;
接收本地设备发送的第一调用请求,所述第一调用请求用于请求调用所述第一微服务;
响应于所述第一调用请求,向所述本地设备发送所述第一微服务的地址信息,以使得所述本地设备接收所述第一微服务的地址信息并根据所述第一微服务的地址信息调用所述第一微服务。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述通用组件发送的第一消息,所述第一消息用于指示所述本地注册中心对所述第一微服务的地址信息进行管理;
基于所述第一消息对所述第一微服务的地址信息进行管理。
8.一种服务调用装置,其特征在于,应用于如权利要求1或2所述的服务调用系统中的通用组件,所述通用组件包括调用清单,所述调用清单用于记载需要从远端设备中调用的第一微服务的标识,所述第一微服务为远端设备中部署的多个远端微服务中的至少一个;所述装置包括:
获取模块,用于从远端注册中心中获取多个远端微服务的地址信息;
筛选模块,用于从所述多个远端微服务的地址信息中筛选出所述调用清单记载的所述第一微服务的地址信息;
发送模块,用于将所述第一微服务的地址信息,发送给本地注册中心,以使得所述本地注册中心在接收到本地设备对所述第一微服务的调用请求时,能够返回所述第一微服务的地址信息;
所述获取模块,还用于从所述远端注册中心中获取所述第一微服务的服务状态;其中,所述服务状态包括:服务下线、服务上线、服务续约、服务注册;
所述装置还包括:确定模块,用于根据所述第一微服务的服务状态确定第一消息,所述第一消息用于指示所述本地注册中心对所述第一微服务的地址信息进行管理;
所述发送模块,还用于向所述本地注册中心发送所述第一消息,以使得所述本地注册中心基于所述第一消息对所述第一微服务的地址信息进行管理。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器与所述存储器耦合;所述存储器用于存储计算机指令,所述计算机指令由所述处理器加载并执行以使计算机设备实现如权利要求3至7中任一项所述的服务调用方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机执行指令,当所述计算机执行指令在计算机上运行时,使得所述计算机执行权利要求3至7任一项所述的服务调用方法。
CN202410232607.6A 2024-02-29 2024-02-29 服务调用系统、方法、装置、电子设备及存储介质 Pending CN118200399A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410232607.6A CN118200399A (zh) 2024-02-29 2024-02-29 服务调用系统、方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410232607.6A CN118200399A (zh) 2024-02-29 2024-02-29 服务调用系统、方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN118200399A true CN118200399A (zh) 2024-06-14

Family

ID=91412899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410232607.6A Pending CN118200399A (zh) 2024-02-29 2024-02-29 服务调用系统、方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN118200399A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119496826A (zh) * 2024-10-24 2025-02-21 中国建设银行股份有限公司 微服务注册中心的切换方法、装置和电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119496826A (zh) * 2024-10-24 2025-02-21 中国建设银行股份有限公司 微服务注册中心的切换方法、装置和电子设备

Similar Documents

Publication Publication Date Title
CN101317381B (zh) 对能力管理对象维护、对能力管理的方法、系统及终端
CN108924274B (zh) 域名系统dns处理方法、装置、存储介质及电子设备
US10594800B2 (en) Platform runtime abstraction
CN104378391A (zh) 软件更新方法、系统及设备
CN115562757B (zh) 数据处理方法、配置中心系统、电子设备及存储介质
WO2020119476A1 (zh) 联盟链信息发布控制方法及终端设备
CN110740057B (zh) 一种业务部署方法以及区块链平台
CN107819615A (zh) 一种设备自适应接入方法、装置及主控设备
CN113296871A (zh) 容器组实例的处理方法、设备及系统
CN113220432A (zh) 多云互联方法、装置、设备、存储介质及产品
CN118200399A (zh) 服务调用系统、方法、装置、电子设备及存储介质
CN115701077A (zh) 一种对接微服务网格的方法以及装置
CN113504872A (zh) 一种云物理机挂载虚拟磁盘的方法、系统、设备及介质
CN111125232A (zh) 一种公有云资产信息接入的方法及装置
CN114706690A (zh) 一种Kubernetes容器共享GPU方法及系统
CN114328745A (zh) 资源管理方法、资源管理系统、电子装置和存储介质
CN110535724B (zh) 应用程序网络读写限制方法、装置、电子设备及存储介质
CN114911421B (zh) 基于csi插件的数据存储方法、系统、装置及存储介质
CN115442913B (zh) 协议接入方法、通信方法、开发设备、网关及存储介质
CN118605961A (zh) 设备管理方法、装置、设备及计算机可读存储介质
WO2024119861A1 (zh) 一种区块链节点的部署方法、装置及终端设备
CN100546256C (zh) 一种实现设备单元自适应支持的方法
CN117834414A (zh) 一种基于Sidecar模式的云资源纳管组件
CN116193299A (zh) 业务管理方法、装置以及存储介质
CN115687223A (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