CN115118703B - 服务调用方法及装置、电子设备 - Google Patents
服务调用方法及装置、电子设备 Download PDFInfo
- Publication number
- CN115118703B CN115118703B CN202210901613.7A CN202210901613A CN115118703B CN 115118703 B CN115118703 B CN 115118703B CN 202210901613 A CN202210901613 A CN 202210901613A CN 115118703 B CN115118703 B CN 115118703B
- Authority
- CN
- China
- Prior art keywords
- service
- information data
- calling
- service information
- request
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000007246 mechanism Effects 0.000 claims description 25
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种服务调用方法及装置、电子设备,涉及云计算领域,应用于微服务远程过程调用系统,微服务远程过程调用系统至少包括:服务消费端,该服务调用方法包括:响应服务消费端发起的服务调用请求,获取服务消费端的调用装置中涉及目标服务的服务信息数据,其中,调用装置用于缓存服务消费端待使用的服务信息数据集合;基于服务信息数据,调用目标服务。本发明解决了相关技术中服务消费端通过缓存服务注册中心的全部服务信息数据,物理资源开销大的技术问题。
Description
技术领域
本发明涉及云计算技术领域,具体而言,涉及一种服务调用方法及装置、电子设备。
背景技术
目前,在SpringCloud(一系列框架的有序集合)架构下,服务消费端本地往往都缓存了Eureka服务注册中心上的全量服务信息数据,在大规模分布式集群场景下,这种方式对内存等物理资源开销提出了很大挑战,同时还会带来网络带宽占用增大,服务处理效率降低等问题。
当前有一种改进思路,通过在Eureka Client(即服务消费端)的配置文件中定义它所依赖的服务名列表,当Eureka Client发送请求Eureka Server(即Eureka服务注册中心)获取服务地址时,配置文件中声明的依赖服务名列表会作为参数传递给EurekaServer,Eureka Server根据传入的列表参数做匹配,最后只返回Eureka Client所依赖的服务地址。
然而在大规模分布式集群场景下,服务间的调用关系错综复杂,额外再维护一份配置就显的费时费力,而且容易出现差错。如果配置的服务名列表中有部分服务实际未调用到,那么就会存在属于冗余问题,配置得不够精确,但是如果配置文件中的服务名列表中缺少实际会调用到的服务名,那就会直接造成服务无法调用等严重后果。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种服务调用方法及装置、电子设备,以至少解决相关技术中服务消费端通过缓存服务注册中心的全部服务信息数据,物理资源开销大的技术问题。
根据本发明实施例的一个方面,提供了一种服务调用方法,应用于微服务远程过程调用系统,所述微服务远程过程调用系统至少包括:服务消费端,包括:响应服务消费端发起的服务调用请求,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据,其中,所述调用装置用于缓存所述服务消费端待使用的服务信息数据集合;基于所述服务信息数据,调用所述目标服务。
可选地,响应服务消费端发起的服务调用请求,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据的步骤,包括:在接收到所述服务调用请求之后,判断所述调用装置是否包含所述服务信息数据;在所述调用装置包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据;在所述调用装置未包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,向所述微服务远程过程调用系统的服务注册中心请求所述服务信息数据,将请求得到的所述服务信息数据缓存至所述调用装置,并基于所述调用请求的请求信息,获取所述服务信息数据。
可选地,在所述调用装置包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据的步骤,还包括:通过第一数据更新机制或第二数据更新机制,对所述调用装置中缓存的所述服务信息数据进行更新。
可选地,通过第一数据更新机制,对所述调用装置中缓存的所述服务信息数据进行更新的步骤,包括:判断所述服务信息数据的当前调用时间与前一次调用时间的时间间隔是否超过预设时长阈值;在所述时间间隔超过所述预设时长阈值的情况下,对所述调用装置中缓存的所述服务信息数据进行更新。
可选地,通过第二数据更新机制,对所述调用装置中缓存的所述服务信息数据进行更新的步骤,还包括:通过预先配置的定时调度任务,对所述调用装置中缓存的所述服务信息数据进行更新,其中,所述定时调度任务的任务数据顺序是异步执行。
可选地,所述微服务远程过程调用系统还包括:服务提供端,所述服务信息数据至少包括:所述目标服务的服务提供端标识、所述目标服务的服务提供端信息列表,其中,所述信息列表至少包括:所述目标服务的服务提供端IP地址、所述目标服务的服务提供端端口标识。
可选地,基于所述服务信息数据,调用所述目标服务的步骤,包括:基于所述服务信息数据中的所述服务提供端IP地址和所述服务提供端端口标识,调用所述目标服务。
可选地,所述服务信息数据在所述调用装置中以键值对的形式存储,其中,所述键值对中的关键字为所述服务提供端标识,所述键值对中的属性值为所述服务提供端信息列表。
根据本发明实施例的另一方面,还提供了一种服务调用装置,应用于微服务远程过程调用系统,所述微服务远程过程调用系统至少包括:服务消费端,包括:获取单元,用于响应服务消费端发起的服务调用请求,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据,其中,所述调用装置用于缓存所述服务消费端待使用的服务信息数据集合;调用单元,用于基于所述服务信息数据,调用所述目标服务。
可选地,获取单元包括:判断子单元,用于在接收到所述服务调用请求之后,判断所述调用装置是否包含所述服务信息数据;第一获取子单元,用于在所述调用装置包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据;第二获取子单元,用于在所述调用装置未包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,向所述微服务远程过程调用系统的服务注册中心请求所述服务信息数据,将请求得到的所述服务信息数据缓存至所述调用装置,并基于所述调用请求的请求信息,获取所述服务信息数据。
可选地,判断子单元还包括:更新模块,用于通过第一数据更新机制或第二数据更新机制,对所述调用装置中缓存的所述服务信息数据进行更新。
可选地,更新模块包括:判断子模块,用于判断所述服务信息数据的当前调用时间与前一次调用时间的时间间隔是否超过预设时长阈值;第一更新子模块,用于在所述时间间隔超过所述预设时长阈值的情况下,对所述调用装置中缓存的所述服务信息数据进行更新。
可选地,更新模块还包括:第二更新子模块,用于通过预先配置的定时调度任务,对所述调用装置中缓存的所述服务信息数据进行更新,其中,所述定时调度任务的任务数据顺序是异步执行。
可选地,所述微服务远程过程调用系统还包括:服务提供端,所述服务信息数据至少包括:所述目标服务的服务提供端标识、所述目标服务的服务提供端信息列表,其中,所述信息列表至少包括:所述目标服务的服务提供端IP地址、所述目标服务的服务提供端端口标识。
可选地,调用单元包括:基于所述服务信息数据中的所述服务提供端IP地址和所述服务提供端端口标识,调用所述目标服务。
可选地,所述服务信息数据在所述调用装置中以键值对的形式存储,其中,所述键值对中的关键字为所述服务提供端标识,所述键值对中的属性值为所述服务提供端信息列表。
在本发明中,响应服务消费端发起的服务调用请求,获取服务消费端的调用装置中涉及目标服务的服务信息数据,其中,调用装置用于缓存服务消费端待使用的服务信息数据集合;基于服务信息数据,调用目标服务。在本发明中,通过消费端新增的调用装置,缓存服务消费端所需的服务提供端的服务信息数据,达到了降低服务消费端物理资源内存开销、同时提高服务调用的效率的目的,从而实现了快速调用服务的技术效果,进而解决了相关技术中服务消费端通过缓存服务注册中心的全部服务信息数据,物理资源开销大的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的服务调用方法的流程图;
图2是根据本发明实施例的一种可选的微服务远程调用方法的架构图;
图3是根据本发明实施例的一种可选的微服务远程调用方法的流程图;
图4是根据本发明实施例的一种可选的服务调用装置的示意图;
图5是根据本发明实施例的一种服务调用方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请各实施例涉及的部分名词或术语进行说明:
Eureka:一种服务发现框架的注册中心,采用应用级服务发现模式。
服务提供端:提供微服务的应用。
服务消费端:调用微服务的服务消费端。
Eureka Server:即Eureka注册中心,提供提供服务注册、服务信息获取、服务管理、信息同步等功能。
Eureka Client:用于简化与Eureka注册中心的交互而封装出来的客户端模块。
需要说明的是,本公开中的服务调用方法及其装置可用于云计算领域在服务提供方的服务的进行远程调用的情况下,也可用于除云计算领域之外的任意领域对服务进行调用的情况下,本公开中对服务调用方法及其装置的应用领域不做限定。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本发明可以应用于各金融机构的各种软件产品、控制系统、客户端(包括但不限于:移动客户端、PC机等)服务调用系统,通过移动客户端上安装的微服务远程过程调用系统,可以实现金融机构的业务内容(包括但不限于:转账、理财、基金、缴费、查账、广告、推荐等业务功能)进行远程调用。
本发明中,服务调用端(例如,微服务远程过程调用系统)能够在本地自动按需地缓存自己所需要的服务信息数据,不仅实现简单、实施成本低,而且能够让调用端有效管理服务信息数据集。本发明借助调用装置,通过在服务远程过程调用过程中,根据实际调用需求,按需从注册中心获取指定的服务信息数据,存放在调用装置中,并建立服务信息数据更新机制,以保持与注册中心数据的一致性,无需额外再维护一份配置文件,实现简单、实施成本低,能够在服务调用端精确维护并管理服务调用端所需要的服务信息数据,大大减少了内存开销,同时又降低了网络带宽的占用,提升了服务调用的效率。
下面结合各实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种服务调用方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例提供了一种服务调用方法,应用于微服务远程过程调用系统,微服务远程过程调用系统包括:服务消费端和服务提供端,在服务消费端部署有调用装置。
本实施例结合下述图1说明该服务调用的方法。
图1是根据本发明实施例的一种可选的服务调用方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,响应服务消费端发起的服务调用请求,获取服务消费端的调用装置中涉及目标服务的服务信息数据,其中,调用装置用于缓存服务消费端待使用的服务信息数据集合;
步骤S102,基于服务信息数据,调用目标服务。
通过上述步骤,可以响应服务消费端发起的服务调用请求,获取服务消费端的调用装置中涉及目标服务的服务信息数据,其中,调用装置用于缓存服务消费端待使用的服务信息数据集合,基于服务信息数据,调用目标服务。在本实施例中,通过调用装置缓存服务消费端所需的服务提供端的服务信息数据,达到了降低服务消费端物理资源内存开销、同时提高服务调用的效率的目的,从而实现了调用系统能够在本地自动按需地缓存自己所需要的服务信息数据的技术效果,进而解决了相关技术中服务消费端通过缓存服务注册中心的全部服务信息数据,物理资源开销大的技术问题。
下面结合上述各实施步骤来进一步说明本发明实施例。
步骤S101,响应服务消费端发起的服务调用请求,获取服务消费端的调用装置中涉及目标服务的服务信息数据,其中,调用装置用于缓存服务消费端待使用的服务信息数据集合。
需要说明的是,上述服务信息数据可以是服务提供端在服务注册中心注册生成,上述调用装置可以是服务消费端引入在自己内部的一个模块,也可以是独立于服务消费端、微服务远程过程调用系统的服务注册中心之外的一个独立装置。
通过上述调用装置缓存服务消费端待使用的所有服务信息数据,得到服务信息数据集合,可以解决相关技术中通过服务消费端存储服务注册中心的所有服务信息数据,物理资源开销大的问题,也可以解决在服务消费端通过配置文件定义服务名列表,根据服务名列表中的服务名调用目标服务,在服务名列表缺少对应服务名时,无法调用目标服务的问题。
可选的,微服务远程过程调用系统还包括:服务提供端,服务信息数据至少包括:目标服务的服务提供端标识、目标服务的服务提供端信息列表,其中,信息列表至少包括:目标服务的服务提供端IP地址、目标服务的服务提供端端口标识,例如,服务提供端端口标识可以是端口编号。
上述目标服务的服务提供端标识可以作为对目标服务的服务信息数据进行查询标识,服务提供端标识可以通过采用数字或字符进行表示,还可以采用英文字母进行表示、或者采用数字、字符、英文字母的组合进行表示。上述目标服务的服务提供端信息列表可以用于提供服务消费端的访问接口数据,通过信息列表中的服务提供端IP地址和目标服务的服务提供端端口标识可以对访问该服务提供端,调用该服务端的服务。
可选的,服务信息数据在调用装置中以键值对的形式存储,其中,键值对中的关键字为服务提供端标识,键值对中的属性值为服务提供端信息列表。
为便于服务消费端对服务信息数据的提取,上述服务信息数据在调用装置中可以通过键值对的形式进行存储。
下面对获取服务消费端的调用装置中的服务信息数据的步骤进行详细说明。
一种可选的实施方式,响应服务消费端发起的服务调用请求,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据的步骤,包括:在接收到服务调用请求之后,判断调用装置是否包含服务信息数据;在调用装置包含服务信息数据的情况下,基于服务调用请求的请求信息,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据;在调用装置未包含服务信息数据的情况下,基于服务调用请求的请求信息,向微服务远程过程调用系统的服务注册中心请求服务信息数据,将请求得到的服务信息数据缓存至调用装置,并基于调用请求的请求信息,获取服务信息数据。
上述服务调用请求的请求信息可以携带目标服务的服务提供端标识,通过请求信息在调用装置中查找携带目标服务的服务提供端标识的服务信息数据。
在调用装置包含服务信息数据的情况下,基于服务调用请求的请求信息,获取服务消费端的调用装置中涉及目标服务的服务信息数据。
在调用装置未包含服务信息数据的情况下,基于服务调用请求的请求信息,可以向微服务远程过程调用系统的服务注册中心请求服务信息数据,将请求得到的服务信息数据缓存至调用装置,然后根据请求信息在调用装置中获取涉及目标服务的服务信息数据。在一种可选的方式中,可以向微服务远程过程调用系统的服务注册中心请求服务信息数据,将请求得到的服务信息数据直接作为获取的目标服务的服务信息数据,并将服务信息数据缓存至调用装置中。
下面对调用装置中缓存的服务信息数据进行更新的方式进行详细说明。
一种可选的,在调用装置包含服务信息数据的情况下,基于服务调用请求的请求信息,获取服务消费端的调用装置中涉及目标服务的服务信息数据的步骤,还包括:通过第一数据更新机制或第二数据更新机制,对调用装置中缓存的服务信息数据进行更新。
下面对通过更新机制对服务信息数据进行更新进行详细说明。
一种可选的实施方式,通过第一数据更新机制,对调用装置中缓存的服务信息数据进行更新的步骤,包括:判断服务信息数据的当前调用时间与前一次调用时间的时间间隔是否超过预设时长阈值;在时间间隔超过预设时长阈值的情况下,对调用装置中缓存的服务信息数据进行更新。
例如,可以为服务信息数据设置过期时间T0,,在第二次调用服务距离第一次调用服务的时间间隔超过了T0,则调用装置会执行刷新操作,重新从服务注册中心获取服务信息数据。
另一种可选的实施方式,通过第二数据更新机制,对调用装置中缓存的服务信息数据进行更新的步骤,还包括:通过预先配置的定时调度任务,对调用装置中缓存的服务信息数据进行更新,其中,定时调度任务的任务数据顺序是异步执行。
上述定时调度任务可以是指通过设置定时任务的方式对调用装置中缓存的服务信息数据进行定时更新,其中,定时调度任务的任务数据顺序是异步执行,可以通过对调用装置中的缓存的服务信息数据进行异步定时更新,不会影响正在执行的服务信息数据的获取请求。同时又降低系统的压力。
步骤S102,基于服务信息数据,调用目标服务。
可选的,基于服务信息数据,调用目标服务的步骤,包括:基于服务信息数据中的服务提供端IP地址和服务提供端端口标识,调用目标服务。
本实施例借助调用装置,在服务远程过程调用过程中,根据实际调用需求,按需从注册中心获取指定的服务信息数据,存放在调用装置中,并建立服务信息数据更新机制,以保持与注册中心数据的一致性,无需额外再维护一份配置文件,实现简单、实施成本低,能够在服务调用方精确维护并管理服务调用方所需要的服务信息数据,大大减少了内存开销,同时又降低了网络带宽的占用,提升了服务调用的效率。
下面结合另一种可选的实施例来说明本发明。
实施例二
本实施例提供了一种基于Eureka的微服务远程调用方案,服务调用端能够在本地自动按需地缓存自己所需要的服务信息数据。
图2是根据本发明实施例的一种可选的微服务远程调用方法的架构图,如图2所示,本实施例的微服务远程调用方案主要包括服务提供端(图2中示意有P1、P2和P3,三个服务提供端)、Eureka注册中心(对应于实施例一中的服务注册中心)、调用装置(设置为服务消费端的一个模块)、服务消费端,每个服务提供端在Eureka注册中心可以进行注册生成相应的服务信息数据,服务信息数据可以包括服务提供端的标识、服务提供端IP地址和服务提供端端口标识等信息。服务消费端可以部署有上述调用装置,服务消费端可以通过调用装置缓存的服务提供端的服务信息数据对服务提供端的服务进行调用,在调用装置中未缓存服务消费端所调用的服务信息数据时,还可以通过调用装置向Eureka注册中心请求对应的服务信息数据。
图3是根据本发明实施例的一种可选的微服务远程调用方法的流程图,如图3所示,本实施例提供的微服务远程调用方法的流程如下:
1、服务调用开始。
2.消费端发起服务调用请求。服务消费端开始发起微服务远程过程调用,例如所要调用的服务名(对应上述服务提供端标识)为serviceA;
3.判断调用装置是否有所调用的服务的服务信息数据。服务消费端在调用装置中查询是否存在serviceA的服务信息数据,也就是serviceA的服务提供端列表,主要包含提供端IP地址、端口等信息。若不存在,则继续执行下一步骤,若存在,则直接进入步骤6;
4.向注册中心请求获取所要调用的服务。服务消费端向注册中心发起指定服务serviceA的信息获取请求;
5.消费端将接收到的服务信息存放在调用装置中。服务消费端将接收到的serviceA的服务信息数据,也就是serviceA的服务提供端列表(对应于实施例一的目标服务的服务提供端信息列表)数据和服务提供端标识,存放在调用装置中,采用键值对key-value的方式,key(对应于实施例一的键值对的关键字)为服务名称(对应于实施例一的服务提供端标识)即serviceA,value为服务提供端列表数据;
6.消费端从调用装置中获取所要调用的服务信息。服务消费端从调用装置中获取serviceA的服务信息数据;
7.消费端进行远程过程调用。服务消费端进行服务serviceA的远程过程调用;
8.服务调用结束。
关于调用装置中的服务信息数据,为了保持与注册中心数据的一致性,可以采取多种更新机制对调用装置中的服务信息数据进行更新:
一种可选的更新机制,可以为服务信息数据设置过期时间T0,例如第二次调用serviceA服务距离第一次调用serviceA服务的时间间隔超过了T0,则调用装置会执行刷新操作,重新获取服务信息,即向注册中心重新请求获取所要调用的服务的服务信息数据;
另一种可选的更新机制,可以为服务信息数据设置异步执行的定时调度任务,不会影响正在执行的获取请求,同时调用装置中所有的服务信息数据又能定时刷新。
借助调用装置,通过在服务远程过程调用过程中,根据实际调用需求,按需从注册中心获取指定的服务信息数据,存放在调用装置中,并建立服务信息数据更新机制,以保持与注册中心数据的一致性,无需额外再维护一份配置文件,实现简单、实施成本低,能够在服务调用端精确维护并管理调用方所需要的服务信息数据列表,大大减少了内存开销,同时又降低了网络带宽的占用,提升了服务调用的效率。
下面结合另一种可选的实施例来说明本发明。
实施例三
本实施例还提供了一种可选的服务调用装置,该服务调用装置所包含的各个实施单元对应于上述实施例的各个步骤。
本实施例提供的服务调用装置,应用于微服务远程过程调用系统,微服务远程过程调用系统至少包括:服务消费端和服务提供端,在服务消费端部署有调用装置。
图4是根据本发明实施例的一种选的服务调用装置的示意图,如图4所示,该服务调用装置包括:获取单元41、调用单元42,其中,
获取单元41,用于响应服务消费端发起的服务调用请求,获取服务消费端的调用装置中涉及目标服务的服务信息数据,其中,调用装置用于缓存服务消费端待使用的服务信息数据集合,服务信息数据为服务提供端在服务注册中心注册生成;
调用单元42,用于基于服务信息数据,调用目标服务。
上述服务调用装置,可以通过获取单元41响应服务消费端发起的服务调用请求,获取服务消费端的调用装置中涉及目标服务的服务信息数据,其中,调用装置用于缓存服务消费端待使用的服务信息数据集合,服务信息数据为服务提供端在服务注册中心注册生成,通过调用单元42基于服务信息数据,调用目标服务。在本实施例中,通过调用装置缓存服务消费端所需的服务提供端的服务信息数据,达到了降低服务消费端物理资源内存开销、同时提高服务调用的效率的目的,从而实现了服务调用的技术效果,进而解决了相关技术中服务消费端通过缓存服务注册中心的全部服务信息数据,物理资源开销大的技术问题。
可选的,获取单元包括:判断子单元,用于在接收到服务调用请求之后,判断调用装置是否包含服务信息数据;第一获取子单元,用于在调用装置包含服务信息数据的情况下,基于服务调用请求的请求信息,获取服务消费端的调用装置中涉及目标服务的服务信息数据;第二获取子单元,用于在调用装置未包含服务信息数据的情况下,基于服务调用请求的请求信息,向微服务远程过程调用系统的服务注册中心请求服务信息数据,将请求得到的服务信息数据缓存至调用装置,并基于调用请求的请求信息,获取服务信息数据。
可选的,判断子单元还包括:更新模块,用于通过第一数据更新机制或第二数据更新机制,对调用装置中缓存的服务信息数据进行更新。
可选的,更新模块包括:判断子模块,用于判断服务信息数据的当前调用时间与前一次调用时间的时间间隔是否超过预设时长阈值;第一更新子模块,用于在时间间隔超过预设时长阈值的情况下,对调用装置中缓存的服务信息数据进行更新。
可选的,更新模块还包括:第二更新子模块,用于通过预先配置的定时调度任务,对调用装置中缓存的服务信息数据进行更新,其中,定时调度任务的任务数据顺序是异步执行。
可选的,服务信息数据至少包括:目标服务的服务提供端标识、目标服务的服务提供端信息列表,其中,信息列表至少包括:目标服务的服务提供端IP地址、目标服务的服务提供端端口标识。
可选的,调用单元包括:基于服务信息数据中的服务提供端IP地址和服务提供端端口标识,调用目标服务。
可选的,服务信息数据在调用装置中以键值对的形式存储,其中,键值对中的关键字为服务提供端标识,键值对中的属性值为服务提供端信息列表。
上述的服务调用装置还可以包括处理器和存储器,上述获取单元41、调用单元42等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来通过调用装置,缓存服务消费端所需的服务提供端的服务信息数据,达到了降低服务消费端物理资源内存开销、同时提高服务调用的效率的目的。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的服务调用方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的服务调用方法。
图5是根据本发明实施例的一种服务调用方法的电子设备(或移动设备)的硬件结构框图。如图5所示,电子设备可以包括一个或多个(图中采用502a、502b,……,502n来示出)处理器502(处理器502可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器504。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种服务调用方法,其特征在于,应用于微服务远程过程调用系统,所述微服务远程过程调用系统至少包括:服务消费端,包括:
响应所述服务消费端发起的服务调用请求,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据,包括:在接收到所述服务调用请求之后,判断所述调用装置是否包含所述服务信息数据;在所述调用装置包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,获取所述服务消费端的调用装置中涉及所述目标服务的服务信息数据;在所述调用装置未包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,向所述微服务远程过程调用系统的服务注册中心请求所述服务信息数据,将请求得到的所述服务信息数据缓存至所述调用装置,并基于所述调用请求的请求信息,获取所述服务信息数据,其中,所述调用装置用于缓存所述服务消费端待使用的服务信息数据集合;
在所述调用装置包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,获取所述服务消费端的调用装置中涉及所述目标服务的服务信息数据的步骤,包括:通过第一数据更新机制或第二数据更新机制,对所述调用装置中缓存的所述服务信息数据进行更新;
通过第一数据更新机制,对所述调用装置中缓存的所述服务信息数据进行更新的步骤,包括:判断所述服务信息数据的当前调用时间与前一次调用时间的时间间隔是否超过预设时长阈值;在所述时间间隔超过所述预设时长阈值的情况下,对所述调用装置中缓存的所述服务信息数据进行更新;
通过第二数据更新机制,对所述调用装置中缓存的所述服务信息数据进行更新的步骤,还包括:通过预先配置的定时调度任务,对所述调用装置中缓存的所述服务信息数据进行更新,其中,所述定时调度任务的任务数据顺序是异步执行;
基于所述服务信息数据,调用所述目标服务。
2.根据权利要求1所述的服务调用方法,其特征在于,所述微服务远程过程调用系统还包括:服务提供端,所述服务信息数据至少包括:所述目标服务的服务提供端标识、所述目标服务的服务提供端信息列表,其中,所述服务提供端信息列表至少包括:所述目标服务的服务提供端IP地址、所述目标服务的服务提供端端口标识。
3.根据权利要求2所述的服务调用方法,其特征在于,基于所述服务信息数据,调用所述目标服务的步骤,包括:
基于所述服务信息数据中的所述服务提供端IP地址和所述服务提供端端口标识,调用所述目标服务。
4.根据权利要求2所述的服务调用方法,其特征在于,所述服务信息数据在所述调用装置中以键值对的形式存储,其中,所述键值对中的关键字为所述服务提供端标识,所述键值对中的属性值为所述服务提供端信息列表。
5.一种服务调用装置,其特征在于,应用于微服务远程过程调用系统,所述微服务远程过程调用系统至少包括:服务消费端,包括:
获取单元,用于响应所述服务消费端发起的服务调用请求,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据,其中,所述调用装置用于缓存所述服务消费端待使用的服务信息数据集合;
获取单元包括:判断子单元,用于在接收到所述服务调用请求之后,判断所述调用装置是否包含所述服务信息数据;第一获取子单元,用于在所述调用装置包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,获取所述服务消费端的调用装置中涉及目标服务的服务信息数据;第二获取子单元,用于在所述调用装置未包含所述服务信息数据的情况下,基于所述服务调用请求的请求信息,向所述微服务远程过程调用系统的服务注册中心请求所述服务信息数据,将请求得到的所述服务信息数据缓存至所述调用装置,并基于所述调用请求的请求信息,获取所述服务信息数据;
判断子单元还包括:更新模块,用于通过第一数据更新机制或第二数据更新机制,对所述调用装置中缓存的所述服务信息数据进行更新;
更新模块包括:判断子模块,用于判断所述服务信息数据的当前调用时间与前一次调用时间的时间间隔是否超过预设时长阈值;第一更新子模块,用于在所述时间间隔超过所述预设时长阈值的情况下,对所述调用装置中缓存的所述服务信息数据进行更新;
更新模块还包括:第二更新子模块,用于通过预先配置的定时调度任务,对所述调用装置中缓存的所述服务信息数据进行更新,其中,所述定时调度任务的任务数据顺序是异步执行;
调用单元,用于基于所述服务信息数据,调用所述目标服务。
6.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至4中任意一项所述的服务调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901613.7A CN115118703B (zh) | 2022-07-28 | 2022-07-28 | 服务调用方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901613.7A CN115118703B (zh) | 2022-07-28 | 2022-07-28 | 服务调用方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115118703A CN115118703A (zh) | 2022-09-27 |
CN115118703B true CN115118703B (zh) | 2024-03-08 |
Family
ID=83334094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210901613.7A Active CN115118703B (zh) | 2022-07-28 | 2022-07-28 | 服务调用方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118703B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109922158A (zh) * | 2019-03-22 | 2019-06-21 | 泰康保险集团股份有限公司 | 基于微服务的数据处理方法、装置、介质及电子设备 |
CN110324177A (zh) * | 2019-05-31 | 2019-10-11 | 中国人民解放军国防科技大学 | 一种微服务架构下的服务请求处理方法、系统及介质 |
CN112235378A (zh) * | 2020-09-29 | 2021-01-15 | 北京三快在线科技有限公司 | 数据更新方法、装置、存储介质及电子设备 |
CN113242297A (zh) * | 2021-05-08 | 2021-08-10 | 中国邮政储蓄银行股份有限公司 | 服务系统及服务状态的调整方法 |
WO2022126968A1 (zh) * | 2020-12-15 | 2022-06-23 | 平安科技(深圳)有限公司 | 微服务访问方法、装置、设备及存储介质 |
-
2022
- 2022-07-28 CN CN202210901613.7A patent/CN115118703B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109922158A (zh) * | 2019-03-22 | 2019-06-21 | 泰康保险集团股份有限公司 | 基于微服务的数据处理方法、装置、介质及电子设备 |
CN110324177A (zh) * | 2019-05-31 | 2019-10-11 | 中国人民解放军国防科技大学 | 一种微服务架构下的服务请求处理方法、系统及介质 |
CN112235378A (zh) * | 2020-09-29 | 2021-01-15 | 北京三快在线科技有限公司 | 数据更新方法、装置、存储介质及电子设备 |
WO2022126968A1 (zh) * | 2020-12-15 | 2022-06-23 | 平安科技(深圳)有限公司 | 微服务访问方法、装置、设备及存储介质 |
CN113242297A (zh) * | 2021-05-08 | 2021-08-10 | 中国邮政储蓄银行股份有限公司 | 服务系统及服务状态的调整方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115118703A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120054107A1 (en) | Systems and Methods for Managing Subscription-Based Licensing of Software Products | |
US20180220292A1 (en) | Blockchain-Based Subscription Management | |
US8856365B2 (en) | Computer-implemented method, computer system and computer readable medium | |
CN114244717B (zh) | 虚拟网卡资源的配置方法、装置、计算机设备及介质 | |
CN114172966B (zh) | 单元化架构下的服务调用方法、服务处理方法及装置 | |
CN110737857A (zh) | 一种后端分页加速方法、系统、终端及存储介质 | |
CN113949697B (zh) | 数据分发方法、装置、电子设备及存储介质 | |
CN110489240A (zh) | 图像识别方法、装置、云平台及存储介质 | |
CN112437000A (zh) | 消息队列推送方法、装置、计算机设备及存储介质 | |
CN112486620A (zh) | 跨进程离屏渲染方法、装置、电子设备及存储介质 | |
CN111383038A (zh) | 移动终端的广告展示方法、装置、移动终端和储存介质 | |
CN115118703B (zh) | 服务调用方法及装置、电子设备 | |
CN115934241A (zh) | 页面展示方法、装置、存储介质及计算机设备 | |
CN115811481B (zh) | 一种交互服务测试方法、装置、计算机设备及存储介质 | |
CN116739524A (zh) | 业务流程设置方法、装置、设备、存储介质及程序产品 | |
CN114356970B (zh) | 一种存储系统资源缓存方法及装置 | |
CN114301970B (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN112463399A (zh) | 一种服务器bmc信息管理方法、系统、终端及存储介质 | |
CN109165200B (zh) | 数据同步方法、装置、计算设备及计算机存储介质 | |
CN113704670A (zh) | 数据共享方法、装置、设备、介质和程序产品 | |
CN113630612A (zh) | 数据处理和数据展示方法、装置、电子设备及介质 | |
CN113645064B (zh) | 任务下发方法、装置、电子设备及存储介质 | |
CN112463748A (zh) | 一种存储系统文件锁标识方法、系统、终端及存储介质 | |
CN112565472A (zh) | 静态资源的处理方法和装置 | |
CN113469735B (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 |