一种服务调用方法、装置、电子设备及存储介质制造方法及图纸

技术编号:22266571 阅读:19 留言:0更新日期:2019-10-10 17:07
本申请公开了一种服务调用方法,用以解决现有服务调用技术中调用的服务实例不可用,导致服务调用失败的问题。方法包括:接收服务消费者的服务调用请求;从服务提供者提供的可用服务实例中选择与服务调用请求对应的目标服务实例,其中,所述可用服务实例是基于服务提供者发送的服务心跳信息从服务实例配置表中存储的已注册服务实例中确定的;将目标服务实例的服务地址发送给服务消费者,以便服务消费者根据服务地址进行服务调用。本申请还公开一种服务调用装置、计算设备及计算机可读存储介质。

A Service Call Method, Device, Electronic Equipment and Storage Medium

【技术实现步骤摘要】
一种服务调用方法、装置、电子设备及存储介质
本申请涉及应用
,尤其涉及一种服务调用方法、装置、电子设备及计算机可读存储介质。
技术介绍
在企业级的应用场景中,应用的功能越来越多样化,一个应用往往集成有多个功能,从而形成一个应用的多个服务。通常,不同服务由于业务复杂度或业务量的不同,可能会有不止一个的实例,因此,在服务调用的过程中,如何确定调用目标服务的服务地址成为亟需解决的问题。目前确定服务地址的方案有如下三种:一是通过硬编码的方式确定,预先将各服务地址编写到配置文件中,当调用服务时,可以通过访问配置文件的方式,确定调用服务的服务地址。二是通过硬编码负载均衡设备或者软件确定,比如通过硬编码虚拟服务器(LinuxVirtualServer,LVS)等负载均衡设备实现,具体地,只需对LVS的地址进行硬编码,当调用服务时,LVS可以根据预先配置的负载均衡策略确定各调用服务的服务地址。三是通过域名查找的方式确定,具体地,将服务配置到域名系统中,当调用服务时,可以通过解析域名获取服务地址列表,进而确定调用服务的服务地址。然而,由于上述方式通常只支持无状态服务(即接收到服务调用请求后,根据负载均衡策略随机选取一个服务实例,响应服务调用请求),无法附加服务的状态信息,若调用服务停止、不可用,则可能导致服务调用失败,难以实现故障转移。
技术实现思路
本申请实施例提供一种服务调用方法,用以解决现有服务调用技术中,调用的服务实例不可用导致服务调用失败的问题。本申请实施例还提供一种工服务调用装置,一种计算设备以及一种计算机可读存储介质。本申请实施例采用下述技术方案:第一方面,本申请实施例提供了一种服务调用方法,所述方法包括:接收服务消费者的服务调用请求;从服务提供者提供的可用服务实例中选择与所述服务调用请求对应的目标服务实例,其中,所述可用服务实例是基于服务提供者发送的服务心跳信息从服务实例配置表中存储的已注册服务实例中确定的;将所述目标服务实例的服务地址发送给所述服务消费者,以便所述服务消费者根据所述服务地址进行服务调用。第二方面,本申请实施例提供了一种服务调用装置,所述装置包括接收模块,选择模块和发送模块,其中:接收模块,用于接收服务消费者的服务调用请求;选择模块,用于从服务提供者提供的可用服务实例中选择与所述服务调用请求对应的目标服务实例,其中,所述可用服务实例是基于服务提供者发送的服务心跳信息从服务实例配置表中存储的已注册服务实例中确定的;发送模块,用于将所述目标服务实例的服务地址发送给所述服务消费者,以便所述服务消费者根据所述服务地址进行服务调用。第三方面,本申请实施例提供了一种计算设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的任意一种服务调用方法的步骤。第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任意一种服务调用方法的步骤。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:采用本申请实施例提供的方法,增加了服务心跳机制,使得可以基于服务心跳信息从服务配置表中选取出可用服务实例,这样一来,当接收到服务消费者的服务调用请求后,可以从可用服务实例中选择出与服务调用请求对应的目标服务实例,而由于可用服务实例中的服务实例均是处于可用状态的,因此,保证了被调用服务实例的可用性,从而解决了现有服务调用技术的问题。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1a为本申请实施例提供的一种具备服务调用功能的服务器的服务架构示意图;图1b为本申请实施例提供的服务调用方法的实现流程示意图;图2为本申请实施例提供的服务调用方法的实现流程示意图;图3为本申请实施例提供服务调用装置的具体结构示意图;图4为本申请实施例提供的一种电子设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。实施例1为解决现有服务调用技术中,调用的服务实例不可用,导致服务调用失败的问题,本申请实施例提供一种服务调用方法。该方法的执行主体,可以是各种类型的电子设备,比如可以是台式计算机、膝上型计算机、笔记本电脑、台式计算机、便携式媒体播放器、计步器、导航装置、蜂窝电话、智能电话、智能手表、可佩戴计算设备或可植入计算设备等用户终端,也可以是服务器等。为便于描述,本申请实施例以该方法的执行主体为具备服务调用功能的服务器为例,对该方法进行介绍。本领域技术人员可以理解,本申请实施例以具备服务调用功能的服务器为例对方法进行介绍,仅是一种示例性说明,并不对本方案对应的权利要求保护范围构成限制。为了方便描述,后续将具备服务调用功能的服务器简称为服务器。以下对服务器的服务架构作简单说明:如图1a所示,本申请中,可以按照服务器的实现功能,将服务器分为持久化层、服务策略层、远程过程调用协议(RemoteProcedureCallProtocol,RPC)适配层、服务注册/发现接口以及连接池&context参数等五部分。其中,持久化层可以用于存储服务实例的配置信息,例如,服务实例的服务名称、服务地址、服务功能信息、服务过期时间、通信协议、服务接口等。需要说明的是,服务实例的服务名称,也即服务实例的标识信息,用于唯一标识服务实例;服务实例的服务名称,可以根据服务实例能够实现的功能进行命名,例如,某一服务实例的功能是计时,则可以根据其计时功能将该微服务命名为jishifuwushili,同时,当一个计时服务有多个服务实例时,可以结合数字编号进行命名,例如,命名为jishifuwushili-1和jishifuwushili-2。服务地址,即该服务实例的IP地址;服务实例的功能信息,用于指示服务实例的功能,服务实例功能信息也可以用功能标识进行表示,例如,凡是提供计时功能的服务实例,其功能标识为jsfw,凡是提供蜂鸣功能的服务实例,其功能标识为nzfw。持久化层中包括用于存储服务实例配置信息的存储中间件ETCD、Consul以及Zookeeper。其中,ETCD、Consul以及Zookeeper均是分布式协调框架,可以实现服务注册。服务器启动后与ETCD、Consul以及Zookeeper中的任意一种分布式协调框架建立长连接,用于存储与服务实例相关的元数据。服务注册接口,可以用于对服务提供者的服务实例进行注册。服务发现接口,可以用于查找与服务调用请求相对应的服务实例。服务策略层,可以用于实现服务调用;其中,服务策略层具体包括:配置下发模块、服务注册模块、服务订阅模块、服务探活模块以及各种服务调用策略模块,比如,负载均衡策略模块、高可用策略模块。RPC适配层,可以本文档来自技高网...

【技术保护点】
1.一种服务调用方法,其特征在于,包括:接收服务消费者的服务调用请求;从服务提供者提供的可用服务实例中选择与所述服务调用请求对应的目标服务实例,其中,所述可用服务实例是基于服务提供者发送的服务心跳信息从服务实例配置表中存储的已注册服务实例中确定的;将所述目标服务实例的服务地址发送给所述服务消费者,以便所述服务消费者根据所述服务地址进行服务调用。

【技术特征摘要】
1.一种服务调用方法,其特征在于,包括:接收服务消费者的服务调用请求;从服务提供者提供的可用服务实例中选择与所述服务调用请求对应的目标服务实例,其中,所述可用服务实例是基于服务提供者发送的服务心跳信息从服务实例配置表中存储的已注册服务实例中确定的;将所述目标服务实例的服务地址发送给所述服务消费者,以便所述服务消费者根据所述服务地址进行服务调用。2.根据权利要求1所述的方法,其特征在于,基于服务提供者发送的服务心跳信息从服务实例配置表中确定可用服务实例,具体包括:根据所述服务提供者提供的服务实例的配置信息进行服务注册,得到所述服务实例配置表;基于所述服务提供者发送的服务心跳信息,确定所述服务实例配置表中各已注册服务实例当前的状态;其中,所述状态包括可用状态和不可用状态;根据所述各已注册服务实例当前的状态,从所述服务实例配置表中确定当前处于可用状态的服务实例。3.根据权利要求2所述的方法,其特征在于,基于所述服务提供者发送的服务心跳信息,确定所述服务实例配置表中各已注册服务实例当前的状态,具体包括:基于所述服务提供者发送的所述服务心跳信息,判断所述服务心跳信息中的发送时间间隔是否超过预设发送时间间隔;若是,则确定所述服务心跳信息对应的服务实例当前处于不可用状态;若否,则确定所述服务心跳信息对应的服务实例当前处于可用状态。4.根据权利要求1所述的方法,其特征在于,从服务提供者提供的可用服务实例中选择与所述服务调用请求对应的目标服务实例,具体包括:基于所述服务调用请求,确定所需调用服务的服务名称;根据所述服务名称,从所述可用服务实例中查找与所述服务名称匹配的至少一个服务实例;根据负载均衡策略,从与所述服务名称匹配的至少一个服务实例中选择一个作为所述目标服务实例。5.一种服务调用装置,其特征在于,包括接收模块、确定模块以及发送模块,其中:接收模块,用于接收服务消费者的服务调用请求;选择模块,用于从服务提供者提供...

【专利技术属性】
技术研发人员:郝忠秀
申请(专利权)人:微梦创科网络科技中国有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1