CN110062043A - 服务治理方法、服务治理装置、存储介质及电子设备 - Google Patents

服务治理方法、服务治理装置、存储介质及电子设备 Download PDF

Info

Publication number
CN110062043A
CN110062043A CN201910303227.6A CN201910303227A CN110062043A CN 110062043 A CN110062043 A CN 110062043A CN 201910303227 A CN201910303227 A CN 201910303227A CN 110062043 A CN110062043 A CN 110062043A
Authority
CN
China
Prior art keywords
service
call request
name
request
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
Application number
CN201910303227.6A
Other languages
English (en)
Other versions
CN110062043B (zh
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.)
Hangzhou Netease Shuzhifan Technology Co ltd
Original Assignee
Hangzhou Langhe Technology 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 Hangzhou Langhe Technology Co Ltd filed Critical Hangzhou Langhe Technology Co Ltd
Priority to CN201910303227.6A priority Critical patent/CN110062043B/zh
Publication of CN110062043A publication Critical patent/CN110062043A/zh
Application granted granted Critical
Publication of CN110062043B publication Critical patent/CN110062043B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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

Landscapes

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

Abstract

本发明实施方式涉及一种服务治理方法、服务治理装置、存储介质与电子设备,属于云计算技术领域。该方法包括:获取对于目标服务的调用请求;对所述调用请求进行流量拦截,以确定所述目标服务的服务名;基于预设的服务信息列表,根据所述服务名确定所述目标服务的服务实例;调用所述服务实例。本发明可以突破现有单一服务治理框架的限制,增加服务治理的通用性,实现对服务消费方或服务提供方解耦。

Description

服务治理方法、服务治理装置、存储介质及电子设备
技术领域
本发明的实施方式涉及云计算技术领域,更具体地,本发明的实施方式涉及一种服务治理方法、服务治理装置、存储介质及电子设备。
背景技术
本部分旨在为权利要求中陈述的本发明的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
服务治理(SOA Governance)是指基于SOA(Service-Oriented Architecture,面向服务的架构),对服务进行决策与管理,包括处理服务调用之间的关系、服务发布和发现、服务监控、可靠性保证等一系列内容。
现有的服务治理框架主要有Spring-Cloud和Dubbo等。其中,Spring-Cloud框架支持HTTP协议(HyperText Transfer Protocol,超文本传输协议),通过拦截用户对RestTemplate(用于访问Rest服务的客户端)实例的调用而实现服务治理;Dubbo框架支持基于Dubbo的RPC协议(Remote Procedure Call,远程过程调用协议),通过RMI(RemoteMethod Invocation,一种实现远程调用的应用程序接口)进行远程调用从而实现服务治理。
发明内容
然而,在现有技术中,服务治理框架存在通用性不足的问题,例如Spring-Cloud框架针对HTTP协议,Dubbo框架多用于RPC协议,且每个框架对其内部组件的依赖度较高,导致服务难以跨框架而实现,对服务提供方与服务消费方提出了高耦合的要求。
为此,非常需要一种改进的服务治理方法,可以提供通用性较高、低耦合的服务治理。
在本上下文中,本发明的实施方式期望提供一种服务治理方法、服务治理装置、存储介质及电子设备。
根据本发明实施方式的第一方面,提供一种服务治理方法,包括:获取对于目标服务的调用请求;对所述调用请求进行流量拦截,以确定所述目标服务的服务名;基于预设的服务信息列表,根据所述服务名确定所述目标服务的服务实例;调用所述服务实例。
在本发明的一种实施方式中,所述对所述调用请求进行流量拦截,以确定所述目标服务的服务名,包括:识别所述调用请求的类型,根据所述类型确定所述调用请求适用的拦截点;在所述拦截点拦截所述调用请求,以将所述调用请求引导至服务解析组件;通过所述服务解析组件从所述调用请求中解析出所述目标服务的服务名。
在本发明的一种实施方式中,如果所述调用请求为HTTP类型的请求,则所述拦截点设置于HTTP执行方法的入口处,所述服务解析组件为用于解析服务名的解析接口。
在本发明的一种实施方式中,如果所述调用请求为基于Dubbo框架的RPC类型的请求,则所述拦截点设置于Dubbo扩展组件的入口处,所述服务解析组件为用于解析服务名的预设扩展组件。
在本发明的一种实施方式中,所述在所述拦截点拦截所述调用请求,以将所述调用请求引导至服务解析组件,包括:通过代理组件在所述拦截点对所述调用请求进行字节码变更操作,以将所述调用请求引导至服务解析组件。
在本发明的一种实施方式中,所述字节码变更操作的对象为所述调用请求中用于发生远程请求的类。
在本发明的一种实施方式中,所述方法还包括:通过注册接口接收服务提供方提供的服务注册信息,以生成所述服务信息列表;其中,所述服务注册信息包括服务名与服务实例信息的对应关系,所述服务信息列表以服务名为索引,以服务实例信息为值。
在本发明的一种实施方式中,所述基于预设的服务信息列表,根据所述服务名确定所述目标服务的服务实例,包括:调用列表接口,以在所述服务信息列表中查找所述服务名对应的多个服务实例;基于过滤条件与负载均衡机制,从所述多个服务实例中确定目标服务实例。
在本发明的一种实施方式中,所述根据所述服务名确定所述目标服务的服务实例,包括:根据所述服务名确定所述目标服务的提供方的地址信息,并根据所述地址信息确定所述目标服务的服务实例。
根据本发明实施方式的第二方面,提供一种服务治理装置,包括:获取模块,用于获取对于目标服务的调用请求;拦截模块,用于对所述调用请求进行流量拦截,以确定所述目标服务的服务名;确定模块,用于基于预设的服务信息列表,根据所述服务名确定所述目标服务的服务实例;调用模块,用于调用所述服务实例。
在本发明的一种实施方式中,所述拦截模块包括:类型识别单元,用于识别所述调用请求的类型,根据所述类型确定所述调用请求适用的拦截点;流量引导单元,用于在所述拦截点拦截所述调用请求,以将所述调用请求引导至服务解析组件;服务名解析单元,用于通过所述服务解析组件从所述调用请求中解析出所述目标服务的服务名。
在本发明的一种实施方式中,如果所述调用请求为HTTP类型的请求,则所述拦截点设置于HTTP执行装置的入口处,所述服务解析组件为用于解析服务名的解析接口。
在本发明的一种实施方式中,如果所述调用请求为基于Dubbo框架的RPC类型的请求,则所述拦截点设置于Dubbo扩展组件的入口处,所述服务解析组件为用于解析服务名的预设扩展组件。
在本发明的一种实施方式中,所述流量引导单元用于通过代理组件在所述拦截点对所述调用请求进行字节码变更操作,以将所述调用请求引导至服务解析组件。
在本发明的一种实施方式中,所述字节码变更操作的对象为所述调用请求中用于发生远程请求的类。
在本发明的一种实施方式中,所述装置还包括:注册模块,用于通过注册接口接收服务提供方提供的服务注册信息,以生成所述服务信息列表;其中,所述服务注册信息包括服务名与服务实例信息的对应关系,所述服务信息列表以服务名为索引,以服务实例信息为值。
在本发明的一种实施方式中,所述确定模块包括:服务查找单元,用于调用列表接口,以在所述服务信息列表中查找所述服务名对应的多个服务实例;目标确定单元,用于基于过滤条件与负载均衡机制,从所述多个服务实例中确定目标服务实例。
在本发明的一种实施方式中,所述确定模块用于根据所述服务名确定所述目标服务的提供方的地址信息,并根据所述地址信息确定所述目标服务的服务实例。
根据本发明实施方式的第三方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
根据本发明实施方式的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本发明实施方式的服务治理方法、服务治理装置、存储介质及电子设备,通过对调用请求进行流量拦截,以确定其所调用的目标服务的服务名,并通过服务信息列表查找出该服务名对应的目标服务实例信息,从而调用该服务实例以实现服务治理。无论调用请求是哪种类型的请求,基于哪种通信协议,本示例实施方式都可以通过流量拦截的方式将其导向服务治理的处理路径,且适配了处理各种类型请求的能力,从而可以突破现有的单一框架的限制,增加服务治理的通用性,实现对服务消费方或服务提供方解耦。并且,服务治理过程的代码侵入性较小,可以实现用户无感知,使用体验较好。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示出了根据本发明实施方式的服务治理方法流程步骤图;
图2示出了根据本发明实施方式的服务注册示意图;
图3示出了根据本发明实施方式的服务治理方法子流程步骤图;
图4示出了根据本发明实施方式从调用请求解析服务名的流程示意图;
图5示出了根据本发明实施方式确定目标服务实例的流程示意图;
图6示出了根据本发明实施方式的服务治理交互流程图;
图7示出了根据本发明实施方式的服务治理装置的结构方框图;
图8示出了根据本发明实施方式的存储介质的示意图;以及
图9示出了根据本发明实施方式的电子设备的结构方框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提供一种服务治理方法、服务治理装置、存储介质及电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐述本发明的原理和精神。
发明概述
本发明人发现,在现有的技术中,服务治理框架存在通用性不足的问题,例如Spring-Cloud框架针对HTTP协议,Dubbo框架多用于RPC协议,且每个框架对其内部组件的依赖度较高,导致服务难以跨框架而实现,对服务提供方与服务消费方提出了高耦合的要求。
鉴于上述内容,本发明的基本思想在于:提供一种服务治理方法、服务治理装置、存储介质及电子设备,通过对调用请求进行流量拦截,以确定其所调用的目标服务的服务名,并通过服务信息列表查找出该服务名对应的目标服务实例信息,从而调用该服务实例以实现服务治理。无论调用请求是哪种类型的请求,基于哪种通信协议,本示例实施方式都可以通过流量拦截的方式将其导向服务治理的处理路径,且适配了处理各种类型请求的能力,从而可以突破现有的单一框架的限制,增加服务治理的通用性,实现对服务消费方或服务提供方解耦。并且,服务治理过程的代码侵入性较小,可以实现用户无感知,使用体验较好。。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
需要注意的是,下述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
以社交平台为例,平台上可以集成大量的第三方应用或服务,当服务消费方发起调用请求时,无论是什么类型的请求,平台都可以基于服务治理,将请求对应到服务提供方的实例,例如确定服务提供方的IP地址(Internet Protocol,互联网协议地址)地址,以实现服务消费方与服务提供方之间的正常交互。以微服务架构的应用程序为例(如基于云部署的应用程序),应用程序的服务拆分为可独立部署的微服务形式,不同微服务可能采用不同的通信协议,当服务消费方发起调用请求时,服务器基于服务治理,将其导向正确的微服务实例。
示例性方法
本发明示例实施方式首先提出了一种服务治理方法,该方法可以应用于服务治理的服务器,例如可以是具有第三方应用的平台的后台服务器,也可以是分布式服务系统中的服务器集群等。图1示出了该服务治理方法的步骤流程,可以包括以下步骤S110~S140:
步骤S110,获取对于目标服务的调用请求。
其中,调用请求由服务消费方(客户端)发送到服务器,其可以基于任意类型的通信协议,例如调用请求可以是HTTP类型的请求或基于Dubbo框架的RPC类型的请求等,其请求的内容可以是访问页面、数据读写等,本示例实施方式对此不做限定。在步骤S110中,服务器所获取的仅仅是初始的调用请求,此时并未对其做任何处理或解析,因此尚不知晓关于目标服务的任何信息,换而言之,服务器此时并不清楚需要调用哪个服务,所以需要执行后续的服务治理。
步骤S120,对上述调用请求进行流量拦截,以确定目标服务的服务名。
本示例实施方式中,流量拦截是指在调用请求被转发前,将其进行拦截分析,以确定其中目标服务的服务名。如果不进行流量拦截,则调用请求到达常规的转发组件,调用请求必须与转发组件的类型匹配,否则无法识别。因此,本示例实施方式的服务治理是在获取调用请求后立即介入,对处理调用请求的全过程进行治理。目标服务可以是基于任意现有框架注册的服务,根据其所属框架的不同,其服务名的类型通常也不同,例如可以是:调用请求所访问的页面的URL(Uniform Resource Locator,统一资源定位符),调用的应用程序名,Service的字段名等。本示例实施方式可以将上述各种类型的服务名从调用请求中提取出来,因此对于服务名的类型不做限定。
步骤S130,基于预设的服务信息列表,根据上述服务名确定目标服务的服务实例。
其中,服务信息列表是预先配置的服务名与服务实例信息之间的映射表,在该表中,可以设置关于服务名的多个属性,每个属性为一种服务名类型,例如URL、应用程序名、Service字段名等,且同一个服务名可以对应于多个服务实例信息。上述多个服务实例信息可以是服务提供方的多个IP地址,也可以是服务引用的多个资源集合或数据集合等。通过服务信息列表,可以将各种类型的服务名与服务实例信息进行统一的对应,具有通用性。
本示例实施方式可以将其他框架的注册中心的信息进行整合,以得到上述服务信息列表,在整合时,基于相同的服务名、相同的服务实例信息或相同的服务提供方信息可以实现关联对应。或者,也可以通过注册接口接收服务提供方提供的服务注册信息,以生成上述服务信息列表;其中,服务注册信息包括服务名与服务实例信息的对应关系,服务信息列表是以服务名为索引、以服务实例信息为值的数据库,换而言之,本示例实施方式可以提供高通用性的注册中心,服务提供方可以将其服务注册到该注册中心,注册中心的代码可以如下所示,其中List为查找列表所用的接口,T为目标服务的服务名:
基于上述注册中心,服务注册的过程可以如图2所示,服务提供方将服务实例信息192.x.0.1:8080、192.x.0.2:8080、192.x.0.3:8080进行注册,并提供其所对应的服务名为ServiceA,注册中心统计所有的注册信息,包括ServiceB、ServiceC等服务名对应的实例信息,得到服务信息列表(Service List)。
在服务信息列表中通过查找目标服务的服务名,可以得到目标服务对应的服务实例。
步骤S140,调用上述服务实例。
其中,所调用的服务实例可以是目标服务的提供方所提供的资源集合,例如页面资源、账号资源等,也可以是提供方所提供的数据集合,例如请求发生读写的数据等。服务治理的服务器可以调用上述资源或数据信息并返回至服务消费方。本示例实施方式对于服务实例的具体类型不做限定,通过调用服务实例,完成了关于调用请求的服务治理过程。
在本发明的一种实施方式中,步骤S130中根据上述服务名确定目标服务的服务实例可以包括:根据上述服务名确定目标服务的提供方的地址信息,并根据该地址信息确定服务实例;步骤S140中可以直接调用该服务实例。例如:服务治理的服务器根据目标服务的服务名查找到目标服务所在服务器的IP地址,通过访问该地址以获得服务实例,以调用并返回服务消费方,或者也可以将该地址返回服务消费方,以建立服务消费方与目标服务之间的通信。
在图1所示的方法流程中,服务治理主要体现在步骤S120~S140,实际应用中,可以在服务治理的服务器上部署一服务治理模块,在该模块内封装服务治理所需的代码、数据与资源,并且可以划分为多个具有独立功能的组件,以分别负责服务治理中的某一环节,例如可以包括负责流量拦截的代理组件,负责服务名解析的服务解析组件等。本示例实施方式可以将服务治理模块插入现有服务治理框架的底层,以将不同的框架在后端进行统一,也可以基于服务治理模块构建出完整的一套框架,该框架具有高通用性。
基于上述说明,本示例实施方式通过对调用请求进行流量拦截,以确定其所调用的目标服务的服务名,并通过服务信息列表查找出该服务名对应的目标服务实例信息,从而调用该服务实例以实现服务治理。无论调用请求是哪种类型的请求,基于哪种通信协议,本示例实施方式都可以通过流量拦截的方式将其导向服务治理的处理路径,且适配了处理各种类型请求的能力,从而可以突破现有的单一框架的限制,增加服务治理的通用性,实现对服务消费方或服务提供方解耦。并且,服务治理过程的代码侵入性较小,可以实现用户无感知,使用体验较好。
在本发明的一种实施方式中,参考图3所示,步骤S120可以具体通过步骤S301~S303实现:
步骤S301,识别调用请求的类型,根据其类型确定调用请求适用的拦截点;
步骤S302,在上述拦截点拦截调用请求,以将调用请求引导至服务解析组件;
步骤S303,通过服务解析组件从调用请求中解析出目标服务的服务名。
其中,拦截点通常设置在调用请求从客户端发出到被执行之间的某个环节,并考虑插入组件的难易程度,例如可以在代码透明的部分或者支持自定义接口的部分设置拦截点。调用请求在到达拦截点之后,相当于从常规的处理路径被引导到本示例实施方式的服务治理路径,其中先由服务解析组件介入,其可以通过语句分析、撞库等方式解析出目标服务的服务名。下面通过两种调用请求的类型做具体说明:
(1)如果调用请求为HTTP类型的请求,则拦截点可以设置于HTTP执行方法的入口处,例如HTTP请求通过doExecute方法执行,则拦截点可以设置于doExecute的入口部分,将HTTP请求导向服务解析组件。相应的,服务解析组件可以是用于解析服务名的解析接口,例如可以通过如下的自定义Resolver接口实现解析,其中T request表示调用请求。
public interface Resolver<T>{
String parser(T request);
}
(2)如果调用请求为基于Dubbo框架的RPC类型的请求,则拦截点可以设置于Dubbo扩展组件的入口处。Dubbo扩展组件(又称Dubbo扩展点)是Dubbo框架支持的自定义扩展机制,用户可以通过编辑扩展点代码实现扩展功能,扩展组件在RMI之前介入调用请求的处理。Dubbo框架具有默认的扩展组件,例如实现容错的failback、failover扩展点,本示例实施方式通过在扩展组件的入口处设置拦截点,改变调用请求的传输路径,将其导向服务解析组件。相应的,服务解析组件可以是用于解析服务名的预设扩展组件,为自定义的扩展点(例如为nsf扩展点),其可以通过语句分析、撞库等方式解析调用请求中所包含的服务名。
在本发明的一种实施方式中,步骤S302还可以进一步通过以下步骤实现:通过代理组件在拦截点对调用请求进行字节码变更操作,以将调用请求引导至服务解析组件。本示例实施方式中的代理组件为Agent,例如可以是基于JVM(Java Virtual Machine,Java虚拟机)的JavaAgent,JavaAgent可以对调用请求中的字节码进行变更操作,流量拦截时,在main函数之前加入premain函数,以导入JavaAssist,对调用请求中的Java字节码进行修改(也可以称为字节码增强),修改其所调用的框架,以导入本框架的服务解析组件。进一步的,字节码变更操作的对象可以是调用请求中用于发生远程请求的类,以HTTP类型的请求为例,发生远程请求的类可以是HttpClient、OkHttpClient、URLConnection等,代理组件通过修改其中远程请求的目标,将其引导至Resolver接口。
上述过程可以如图4所示,当服务消费方(Consumer)发出调用请求(Request)时,代理组件(Agent)通过修改其中的HttpClient、OkHttpClient、URLConnection或RPC等远程调用类的字节码,将调用请求被引导至服务解析组件(Resolver接口),其中HttpClientResolver、OkHttpClientResolver、URLConnectionResolver与RPCResolver分别为Resolver接口提供的关于上述几种远程调用类的解析实现类(ResolverImpl),从而可以解析出目标服务的服务名(Service Name)。在本发明的一种实施方式中,服务治理的服务器可以从客户端获取配置文件,配置文件中包含发生远程请求的底层类及其执行方法,则可以在其方法的入口出设置拦截点,对其底层类的字节码做变更操作,以实现流量拦截。
在本发明的一种实施方式中,步骤S130可以具体通过以下步骤实现:
调用列表接口,以在服务信息列表中查找服务名对应的多个服务实例;
基于过滤条件与负载均衡机制,从多个服务实例中确定目标服务实例。
其中,服务信息列表可以存储于外部数据库或注册中心,通过定义列表接口(例如List接口),以调用该接口实现在外部数据库或注册中心查找目标服务的实例。通常一个服务名可以对应多个服务实例,例如服务提供方的多个服务器地址,本示例实施方式中,过滤条件与负载均衡机制均用于确定其中哪个服务实例最适合,两者之间并无关联,可视为两个独立的过程。过滤条件可以是对服务实例的数据标签进行过滤,也可以根据调用请求中设置的条件进行过滤等,负载均衡机制通常考虑多个服务实例之间访问并发的情况等。
图5示出了上述处理过程,在解析出调用请求中包含的服务名(Service Name)后,调用列表接口(List API),以查找出目标服务的多个服务实例,得到一个小型的列表(Instance List),通过过滤条件过滤(Filter)为服务实例的子集(Instance Subset),再通过负载均衡(Loadbalance)确定出最合适的目标服务实例(Target Instance)。
本发明的示例实施方式还提供了一个服务治理的具体示例,参考图6所示的交互流程图,服务提供方(Provider)事先将服务注册到注册中心(Registry),注册中心记录服务名与服务实例的对应信息:服务名ServiceA对应服务实例192.x.0.1:8080、192.x.0.2:8080与192.x.0.3:8080;当服务消费方发送HTTP类型的调用请求时,服务治理模块(Governance)将其拦截,解析出服务名ServiceA,在注册中心的服务信息列表中查找到对应的3个服务实例,再进行过滤与负载均衡处理,得到最合适的服务实例192.x.0.1:8080;服务治理模块将该服务实例信息返回服务消费方,使得服务消费方访问该实例地址,实现对目标服务(ServiceA)的调用。
示例性装置
在介绍了本发明示例性实施方式的服务治理方法之后,接下来,参考图7对本发明示例性实施方式的服务治理装置进行说明。
如图7所示,服务治理装置700可以包括:获取模块710,用于获取对于目标服务的调用请求;拦截模块720,用于对上述调用请求进行流量拦截,以确定目标服务的服务名;确定模块730,用于基于预设的服务信息列表,根据上述服务名确定目标服务的服务实例;调用模块740,用于调用上述服务实例。
在本发明的一种实施方式中,拦截模块720可以包括:类型识别单元721,用于识别调用请求的类型,根据其类型确定调用请求适用的拦截点;流量引导单元722,用于在拦截点拦截调用请求,以将调用请求引导至服务解析组件;服务名解析单元723,用于通过服务解析组件从调用请求中解析出目标服务的服务名。
在本发明的一种实施方式中,如果调用请求为HTTP类型的请求,则拦截点可以设置于HTTP执行装置的入口处,服务解析组件可以是用于解析服务名的解析接口。
在本发明的一种实施方式中,如果调用请求为基于Dubbo框架的RPC类型的请求,则拦截点可以设置于Dubbo扩展组件的入口处,服务解析组件可以是用于解析服务名的预设扩展组件。
在本发明的一种实施方式中,流量引导单元722可以用于通过代理组件在拦截点对调用请求进行字节码变更操作,以将调用请求引导至服务解析组件。
在本发明的一种实施方式中,字节码变更操作的对象为调用请求中用于发生远程请求的类。
在本发明的一种实施方式中,装置700还可以包括:注册模块750,用于通过注册接口接收服务提供方提供的服务注册信息,以生成服务信息列表;其中,服务注册信息包括服务名与服务实例信息的对应关系,服务信息列表以服务名为索引,以服务实例信息为值。
在本发明的一种实施方式中,确定模块730可以包括:服务查找单元731,用于调用列表接口,以在服务信息列表中查找服务名对应的多个服务实例;目标确定单元732,用于基于过滤条件与负载均衡机制,从多个服务实例中确定目标服务实例。
在本发明的一种实施方式中,确定模块730可以用于根据上述服务名确定目标服务的提供方的地址信息,并根据该地址信息确定目标服务的服务实例。
此外,本发明实施方式的其他具体细节在上述方法的发明实施方式中已经详细说明,在此不再赘述。
示例性存储介质
在介绍了本发明示例性实施方式的服务治理方法和装置之后,接下来,参考图8对本发明示例性实施方式的存储介质进行说明。
如图8所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RE等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(FAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图9对本发明示例性实施方式的电子设备进行说明。
图9显示的电子设备900仅仅是一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930、显示单元940。
其中,存储单元920存储有程序代码,程序代码可以被处理单元910执行,使得处理单元910执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元910可以执行如图1或图3所示的方法步骤等。
存储单元920可以包括易失性存储单元,例如随机存取存储单元(RAM)921和/或高速缓存存储单元922,还可以进一步包括只读存储单元(ROM)923。
存储单元920还可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块925包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以包括数据总线、地址总线和控制总线。
电子设备900也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口950进行。电子设备900还包括显示单元940,其连接到输入/输出(I/O)接口950,用于进行显示。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(FAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种服务治理方法,其特征在于,包括:
获取对于目标服务的调用请求;
对所述调用请求进行流量拦截,以确定所述目标服务的服务名;
基于预设的服务信息列表,根据所述服务名确定所述目标服务的服务实例;
调用所述服务实例。
2.根据权利要求1所述的方法,其特征在于,所述对所述调用请求进行流量拦截,以确定所述目标服务的服务名,包括:
识别所述调用请求的类型,根据所述类型确定所述调用请求适用的拦截点;
在所述拦截点拦截所述调用请求,以将所述调用请求引导至服务解析组件;
通过所述服务解析组件从所述调用请求中解析出所述目标服务的服务名。
3.根据权利要求2所述的方法,其特征在于,如果所述调用请求为HTTP类型的请求,则所述拦截点设置于HTTP执行方法的入口处,所述服务解析组件为用于解析服务名的解析接口。
4.根据权利要求2所述的方法,其特征在于,如果所述调用请求为基于Dubbo框架的RPC类型的请求,则所述拦截点设置于Dubbo扩展组件的入口处,所述服务解析组件为用于解析服务名的预设扩展组件。
5.根据权利要求2~4任一项所述的方法,其特征在于,所述在所述拦截点拦截所述调用请求,以将所述调用请求引导至服务解析组件,包括:
通过代理组件在所述拦截点对所述调用请求进行字节码变更操作,以将所述调用请求引导至服务解析组件。
6.根据权利要求5所述的方法,其特征在于,所述字节码变更操作的对象为所述调用请求中用于发生远程请求的类。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过注册接口接收服务提供方提供的服务注册信息,以生成所述服务信息列表;
其中,所述服务注册信息包括服务名与服务实例信息的对应关系,所述服务信息列表以服务名为索引,以服务实例信息为值。
8.一种服务治理装置,其特征在于,包括:
获取模块,用于获取对于目标服务的调用请求;
拦截模块,用于对所述调用请求进行流量拦截,以确定所述目标服务的服务名;
确定模块,用于基于预设的服务信息列表,根据所述服务名确定所述目标服务的服务实例;
调用模块,用于调用所述服务实例。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7中任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任一项所述的方法。
CN201910303227.6A 2019-04-16 2019-04-16 服务治理方法、服务治理装置、存储介质及电子设备 Active CN110062043B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910303227.6A CN110062043B (zh) 2019-04-16 2019-04-16 服务治理方法、服务治理装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910303227.6A CN110062043B (zh) 2019-04-16 2019-04-16 服务治理方法、服务治理装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN110062043A true CN110062043A (zh) 2019-07-26
CN110062043B CN110062043B (zh) 2021-10-29

Family

ID=67319225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910303227.6A Active CN110062043B (zh) 2019-04-16 2019-04-16 服务治理方法、服务治理装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN110062043B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716811A (zh) * 2019-08-14 2020-01-21 中国平安财产保险股份有限公司 数据库的调用方法、装置和计算机设备
CN110837424A (zh) * 2019-10-15 2020-02-25 东软集团股份有限公司 服务实例确定方法、装置、存储介质及电子设备
CN110995848A (zh) * 2019-12-10 2020-04-10 北京海益同展信息科技有限公司 一种服务治理方法、装置、系统、电子设备及存储介质
CN111242104A (zh) * 2020-04-10 2020-06-05 支付宝(杭州)信息技术有限公司 服务调用方法及装置
CN111371695A (zh) * 2020-03-03 2020-07-03 中国工商银行股份有限公司 服务限流方法及装置
CN111431959A (zh) * 2020-02-19 2020-07-17 中国船舶工业系统工程研究院 一种基于发布订阅拦截器机制的服务负载均衡方法及装置
CN111988398A (zh) * 2020-08-19 2020-11-24 政采云有限公司 一种数据获取方法、api网关、介质
CN112202929A (zh) * 2020-12-01 2021-01-08 湖南新云网科技有限公司 一种微服务架构中的服务访问方法、装置、设备
CN112231120A (zh) * 2020-10-17 2021-01-15 苏州斯玛维科技有限公司 服务访问方法和装置
CN112306848A (zh) * 2019-07-31 2021-02-02 中国移动通信集团浙江有限公司 微服务系统的架构视图生成方法及装置
CN112468499A (zh) * 2020-11-27 2021-03-09 中国工商银行股份有限公司 函数调用服务的权限控制方法及装置
CN117311854A (zh) * 2023-11-28 2023-12-29 南京研利科技有限公司 微服务治理方法、装置、电子设备及可读取存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138250A1 (en) * 2008-12-02 2010-06-03 International Business Machines Corporation Governing Architecture Of A Service Oriented Architecture
US20100217634A1 (en) * 2009-02-25 2010-08-26 International Business Machines Corporation Transitioning to management of a service oriented architecture shared service
US20160042068A1 (en) * 2014-08-08 2016-02-11 Software Ag Service oriented query and service query language framework
US20160041816A1 (en) * 2013-04-26 2016-02-11 The Trustees Of Columbia University In The City Of New York Systems and methods for mobile applications
CN106250178A (zh) * 2016-07-26 2016-12-21 北京北森云计算股份有限公司 通过多语言云编译实现系统动态功能在线拦截扩展的方法
CN107734066A (zh) * 2017-11-16 2018-02-23 郑州云海信息技术有限公司 一种数据中心综合管理系统服务治理方法
CN107770243A (zh) * 2017-09-06 2018-03-06 北京奥鹏远程教育中心有限公司 自扩展、自适应微服务平台及其应用方法
CN108206852A (zh) * 2016-12-20 2018-06-26 杭州华为数字技术有限公司 一种微服务框架下的基于会话的服务实例管理方法及设备
CN108234666A (zh) * 2018-01-16 2018-06-29 云宏信息科技股份有限公司 一种微服务调用系统、方法及计算机存储介质
CN109032783A (zh) * 2018-08-01 2018-12-18 杭州朗和科技有限公司 信息交互方法、介质、装置和计算设备
CN109246251A (zh) * 2018-11-13 2019-01-18 杭州数梦工场科技有限公司 一种微服务调用方法、装置、系统、设备及可读存储介质
CN109343829A (zh) * 2018-08-09 2019-02-15 广州瀚信通信科技股份有限公司 一种java语言分布式微服务治理框架
CN109445869A (zh) * 2018-09-17 2019-03-08 山东中创软件商用中间件股份有限公司 一种跨云适配的微服务管理方法、装置和存储介质
CN109542645A (zh) * 2018-11-20 2019-03-29 北京锐安科技有限公司 一种调用服务的方法、装置、电子设备及存储介质

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138250A1 (en) * 2008-12-02 2010-06-03 International Business Machines Corporation Governing Architecture Of A Service Oriented Architecture
US20100217634A1 (en) * 2009-02-25 2010-08-26 International Business Machines Corporation Transitioning to management of a service oriented architecture shared service
US8935655B2 (en) * 2009-02-25 2015-01-13 International Business Machines Corporation Transitioning to management of a service oriented architecture shared service
US20160041816A1 (en) * 2013-04-26 2016-02-11 The Trustees Of Columbia University In The City Of New York Systems and methods for mobile applications
US20160042068A1 (en) * 2014-08-08 2016-02-11 Software Ag Service oriented query and service query language framework
CN106250178A (zh) * 2016-07-26 2016-12-21 北京北森云计算股份有限公司 通过多语言云编译实现系统动态功能在线拦截扩展的方法
CN108206852A (zh) * 2016-12-20 2018-06-26 杭州华为数字技术有限公司 一种微服务框架下的基于会话的服务实例管理方法及设备
CN107770243A (zh) * 2017-09-06 2018-03-06 北京奥鹏远程教育中心有限公司 自扩展、自适应微服务平台及其应用方法
CN107734066A (zh) * 2017-11-16 2018-02-23 郑州云海信息技术有限公司 一种数据中心综合管理系统服务治理方法
CN108234666A (zh) * 2018-01-16 2018-06-29 云宏信息科技股份有限公司 一种微服务调用系统、方法及计算机存储介质
CN109032783A (zh) * 2018-08-01 2018-12-18 杭州朗和科技有限公司 信息交互方法、介质、装置和计算设备
CN109343829A (zh) * 2018-08-09 2019-02-15 广州瀚信通信科技股份有限公司 一种java语言分布式微服务治理框架
CN109445869A (zh) * 2018-09-17 2019-03-08 山东中创软件商用中间件股份有限公司 一种跨云适配的微服务管理方法、装置和存储介质
CN109246251A (zh) * 2018-11-13 2019-01-18 杭州数梦工场科技有限公司 一种微服务调用方法、装置、系统、设备及可读存储介质
CN109542645A (zh) * 2018-11-20 2019-03-29 北京锐安科技有限公司 一种调用服务的方法、装置、电子设备及存储介质

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306848A (zh) * 2019-07-31 2021-02-02 中国移动通信集团浙江有限公司 微服务系统的架构视图生成方法及装置
CN112306848B (zh) * 2019-07-31 2023-11-03 中国移动通信集团浙江有限公司 微服务系统的架构视图生成方法及装置
CN110716811A (zh) * 2019-08-14 2020-01-21 中国平安财产保险股份有限公司 数据库的调用方法、装置和计算机设备
CN110837424A (zh) * 2019-10-15 2020-02-25 东软集团股份有限公司 服务实例确定方法、装置、存储介质及电子设备
CN110995848A (zh) * 2019-12-10 2020-04-10 北京海益同展信息科技有限公司 一种服务治理方法、装置、系统、电子设备及存储介质
CN110995848B (zh) * 2019-12-10 2022-09-06 京东科技信息技术有限公司 一种服务治理方法、装置、系统、电子设备及存储介质
CN111431959A (zh) * 2020-02-19 2020-07-17 中国船舶工业系统工程研究院 一种基于发布订阅拦截器机制的服务负载均衡方法及装置
CN111431959B (zh) * 2020-02-19 2022-10-21 中国船舶工业系统工程研究院 一种基于发布订阅拦截器机制的服务负载均衡方法及装置
CN111371695A (zh) * 2020-03-03 2020-07-03 中国工商银行股份有限公司 服务限流方法及装置
CN111371695B (zh) * 2020-03-03 2023-07-25 中国工商银行股份有限公司 服务限流方法及装置
CN111242104A (zh) * 2020-04-10 2020-06-05 支付宝(杭州)信息技术有限公司 服务调用方法及装置
CN111988398A (zh) * 2020-08-19 2020-11-24 政采云有限公司 一种数据获取方法、api网关、介质
CN112231120A (zh) * 2020-10-17 2021-01-15 苏州斯玛维科技有限公司 服务访问方法和装置
CN112468499A (zh) * 2020-11-27 2021-03-09 中国工商银行股份有限公司 函数调用服务的权限控制方法及装置
CN112202929B (zh) * 2020-12-01 2021-03-26 湖南新云网科技有限公司 一种微服务架构中的服务访问方法、装置、设备
CN112202929A (zh) * 2020-12-01 2021-01-08 湖南新云网科技有限公司 一种微服务架构中的服务访问方法、装置、设备
CN117311854A (zh) * 2023-11-28 2023-12-29 南京研利科技有限公司 微服务治理方法、装置、电子设备及可读取存储介质
CN117311854B (zh) * 2023-11-28 2024-02-13 南京研利科技有限公司 微服务治理方法、装置、电子设备及可读取存储介质

Also Published As

Publication number Publication date
CN110062043B (zh) 2021-10-29

Similar Documents

Publication Publication Date Title
CN110062043A (zh) 服务治理方法、服务治理装置、存储介质及电子设备
Knabe Language support for mobile agents
US6718389B2 (en) System and method for executing a request from a client application
US7386609B2 (en) Method, system, and program for managing devices in a network
US20030172127A1 (en) Execution of process by references to directory service
US9454616B2 (en) Method and system for unifying configuration descriptors
US20180307692A1 (en) Software application interface for mediating access to services of a centralized data store
US11755744B2 (en) Application programming interface specification inference
CN110858202A (zh) 数据库查询语句中where子句的生成方法和生成装置
US10798200B2 (en) Payload matching via single pass transformation of HTTP payload
US20130018694A1 (en) Dynamically Allocating Business Workflows
CN111026931A (zh) 一种数据查询方法、装置、设备及介质
CN113381866A (zh) 基于网关的服务调用方法、装置、设备及存储介质
US6874151B1 (en) Interprocess communication mechanism for heterogeneous computer processes
CN109669790A (zh) 基于云平台的数据共享方法、装置、共享平台及存储介质
CN113220273A (zh) 微前端应用资源处理方法、装置、设备和介质
US11087003B2 (en) Scalable pre-analysis of dynamic applications
CN115934537A (zh) 接口测试工具生成方法、装置、设备、介质及产品
US10620946B1 (en) Dynamic modeling for opaque code during static analysis
CN110377401B (zh) 基于idea的事务请求处理方法、装置、服务器和存储介质
CN116028041A (zh) 组件模板创建、页面配置、及页面展示方案
CN113064987A (zh) 数据处理方法、装置、电子设备、介质和程序产品
CN112769975A (zh) 一种数据集成方法、装置、服务器及存储介质
CN110209945A (zh) 一种http接口的敏感词汇管理方法
KR102181608B1 (ko) 연합 인증 장치 및 그것의 연합 인증 방법

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd.