CN116866415A - 一种服务治理方法与系统 - Google Patents
一种服务治理方法与系统 Download PDFInfo
- Publication number
- CN116866415A CN116866415A CN202310997959.6A CN202310997959A CN116866415A CN 116866415 A CN116866415 A CN 116866415A CN 202310997959 A CN202310997959 A CN 202310997959A CN 116866415 A CN116866415 A CN 116866415A
- Authority
- CN
- China
- Prior art keywords
- service
- domain
- instance
- call request
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title description 46
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000004044 response Effects 0.000 claims description 42
- 230000003993 interaction Effects 0.000 claims description 13
- 238000005067 remediation Methods 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 19
- 230000015654 memory Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 239000002071 nanotube Substances 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012795 verification Methods 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种服务治理系统,系统包括多个域,多个域中的一个为公共域,其余的域为功能域,其中,多个域中的每个域内均包含至少一个服务实例,每个服务实例均向服务实例所在域以外的域中的服务实例发送服务调用请求;其中,公共域,用于获取服务实例发起的服务调用请求,将服务调用请求发送至服务调用请求所需调用的服务实例所在的域;功能域中的每一个功能域,用于处理服务请求,并向公共域返回处理结果。这样通过公共域来实现服务调用请求的统一路由,可以显著提高服务治理的可靠性与安全性。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种服务治理方法与系统。
背景技术
在云技术中,随着网络架构从早期的单层架构逐渐向云原生架构演进,微服务已经成为云原生架构的重要基础设施,越来越多企业和机构正在利用微服务开展业务。微服务把大的应用合理拆分成一个个服务,从而实现了软件敏捷开发,降低了系统间耦合度,同时,服务能够独立部署、快速启动、动态扩容,使整个系统更加适应当前业务发展需求。但是,随着服务拆分的进行,由于微服务中的每个服务都是分布式独立部署的,每个服务的域的三要素(端口、协议、域名)也是互不相同的,这样,在涉及到跨域业务场景时,跨域交互就变得复杂起来,跨域问题就不可避免的出现了。因此,如何进行服务治理成为亟需解决的技术问题。
发明内容
为了解决现有技术中存在的问题,本申请实施例提供了一种服务治理方法及装置、系统、计算设备、计算机存储介质及包含计算机程序的产品,能够通过划分公共域和功能域,使用公共域来实现统一路由,使得功能域只需要与公共域进行数据打通,避免多个功能域之间进行数据打通时需要手动配置带来的各种问题,可以显著提高服务治理能力的可用性、可靠性,更适应网络架构的管理需求。
第一方面,本申请实施例提供一种服务治理系统,该系统包括多个域,多个域中的一个为公共域,其余的域为功能域,其中,多个域中的每个域内均包含至少一个服务实例,每个服务实例均向服务实例所在域以外的域中的服务实例发送服务调用请求;其中,公共域,用于获取服务实例发起的服务调用请求,将服务调用请求发送至服务调用请求所需调用的服务实例所在的域;功能域中的每一个功能域,用于处理服务请求,并向公共域返回处理结果。
在一些可能的实现方式中,公共域,包括:能力网关组件,在服务调用请求所需调用的服务实例所在的域为功能域的情况下,能力网关组件用于将服务调用请求发送至服务调用请求所需调用的服务实例所在的功能域,以及,接收功能域返回的响应结果;服务治理组件,用于存储服务目录,服务目录包括功能域中各服务实例的服务能力,以及每一个功能域中各服务实例的服务能力与功能域地址的对应关系;分级管理组件,用于接收功能域所发送的服务能力信息。
在一些可能的实现方式中,在服务调用请求所需调用的服务实例所在域为公共域的情况下,能力网关组件还用于将服务调用请求路由至需要调用的服务实例。
在一些可能的实现方式中,服务治理组件包括:服务注册模块,用于将公共域内服务实例的注册信息注册至服务目录;服务注册模块,还用于将功能域内的服务实例的注册信息注册至服务目录。
在一些可能的实现方式中,功能域中的每一个功能域均包括:能力网关组件,用于与公共域进行数据交互,包括接收公共域发送的服务调度请求,将服务调度请求路由至需要调用的服务实例,以及,向功能域返回服务调度请求的响应结果;服务治理组件,用于存储功能域中各服务实例的服务能力;分级管理组件,用于将功能域中各服务实例的地址及端口发送至公共域。
在一些可能的实现方式中,分级管理组件,具体用于:将功能域中各服务实例的地址及端口转换为能力网关组件的地址及端口,将能力网关组件的地址及端口发送至公共域。
在一些可能的实现方式中,用于获取服务实例发起的服务调用请求,包括:获取公共域中的服务实例发起的服务调用请求;或,接收功能域中的服务实例发起的服务调用请求。
在一些可能的实现方式中,将服务调用请求发送至服务调用请求所需调用的服务实例所在的域,包括:在服务调用请求为公共域中的服务实例发起的服务调用请求时,将服务调用请求发送至所需调用的功能域;在服务调用请求为功能域中的服务实例发起的服务调用请求时,查询服务治理组件,确定服务调用请求所需调用的服务实例所在的域,在服务调用请求所需调用的服务实例所在的域为公共域的情况下,将服务调用请求路由至所需调用的服务实例,在服务调用请求所需调用的服务实例所在的域为功能域的情况下,将服务调用请求发送至服务实例所在的功能域。
第二方面,本申请实施例提供一种服务治理方法,应用于公共域,公共域为服务治理系统中指定的域,方法包括:获取服务实例发起的服务调用请求;基于服务调用请求,获取服务调用请求对应的服务信息,服务信息包括IP与端口;将服务调用请求路由至服务地址;接收服务调用请求的响应结果,将响应结果返回发起服务调用请求的服务实例。
第三方面,本申请实施例提供一种服务治理装置,装置包括:获取模块,用于获取服务实例发起的服务调用请求;处理模块,用于基于服务调用请求,获取服务调用请求对应的服务信息,服务信息包括IP与端口;处理模块,还用于将服务调用请求路由至服务地址;处理模块,还用于接收服务调用请求的响应结果,将响应结果返回发起服务调用请求的服务实例。
第四方面,本申请实施例提供一种计算机可读存储介质,包括计算机可读命令,当计算机读取并执行所述计算机可读命令时,使得计算机执行如第二方面所述的方法。
第五方面,本申请实施例提供一种计算设备,包括处理器和存储器,其中,所述存储器中存储有计算机程序命令,所述计算机程序命令被所述处理器运行时,执行如第二方面所述的方法。
第六方面,本申请实施例提供一种包含计算机程序的产品,当计算机程序产品在处理器上运行时,使得所述处理器执行如第二方面所述的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的一种服务治理系统的架构示意图;
图2是本申请实施例提供的一种能力网关组件的架构示意图;
图3是本申请实施例提供的一种域内消费时能力网关组件的工作示意图;
图4是本申请实施例提供的一种服务治理组件的结构示意图;
图5是本申请实施例提供的一种跨域消费时能力网关组件的工作示意图;
图6是本申请实施例提供的一种分级管理的流程示意图;
图7是本申请实施例提供的一种服务治理方法的流程示意图;
图8是本申请实施例提供的一种数据交互过程示意图;
图9是本申请实施例提供的另一种数据交互过程示意图;
图10是本申请实施例提供的一种服务治理装置的架构示意图;
图11是本申请实施例提供的一种计算设设备的架构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
为便于对本申请实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
首先,对本申请所涉及的技术术语进行介绍:
1.服务,它是分布式架构下的基础单元,包括一个或一组软件功能,其目的是不同的客户端通过网络获取相应的数据,而不用关注底层实现的具体细节。以用户服务为例,当客户端调用用户服务的注册功能时,注册信息会被写入数据库、缓存并发送消息来通知其他关注注册事件的系统,但是调用方并不清楚服务的具体处理逻辑。
2.服务注册,是指服务实例在启动时被加载到容器中,并将服务自身的相关信息,比如服务名称、IP地址、端口等注册到系统中,并使用心跳机制定期刷新当前服务在系统中的状态,以确认服务状态正常,在服务终止时将其从注册表中删除。
3.服务发现,是指使用服务目录来记录服务的信息,以便其他服务快速找到这些已注册的服务。
4.服务路由,也称作请求路由或路由,是指通过配置一定的规则,让某些流量,进入某些特定的服务器。
5.服务限流,也称作请求限流,是指在一些特殊场景或特殊时期,可能会存在大量请求涌入服务端,而服务端本身承受能力有限,为了保护服务端不被压垮对流量进行限制,从而保证服务的正常运行。
接下来,对本申请实施例提供的技术方案进行介绍。
在微服务中,各个服务通常都是以分布式的方式进行部署的,各个服务之间通过远程过程调用(remote procedure call,RPC)的方式进行通讯。分布式系统指的是通过网络连接让多台计算机协同解决单台计算机所不能解决的计算、存储等问题,多台计算机之间通过RPC方式通信。为了解决分布式的微服务框架下出现的跨域问题,就需要对微服务中的各个服务开展服务治理工作。服务治理的核心理念,是服务自洽,服务治理的最终目的,是对微服务框架下的各个微服务可能出现的问题进行综合治理。有效的服务治理能够提高服务的可靠性,降低运营成本,实现服务优化,成为可以保障云服务质量和安全的重要手段。在服务治理的相关技术中,主要是针对域内的服务治理。针对域内的服务治理,已经非常成熟,有大量的研究成果和相关的成功实践案例。而针对跨域的服务治理,例如跨域访问、跨域服务注册与发现,跨域流量管控等,尚未得到重视与研究。其中,跨域通常是指客户端与服务端在不同的域内。但是,跨域服务治理是实现服务互操作和服务融合的关键环节。
在跨域服务治理中,需要解决跨域交互问题。目前,实现跨域交互通常有两种模式。第一种,两两互通模式,客户端(也可称作服务消费者)可以直接向任何一个服务端(也可称作服务提供者)发起服务请求(也称服务调用请求)。但是,在这一种实现方式中,由于一个服务调用请求可能请求的是分布式服务中的多个服务,即客户端的需求量与服务端的应用程序接口(application programming interface,API)数量可能并不匹配,客户端可能需要发起多个请求才能最终获取到完整数据。例如,一个请求需要调用3个API,但是这3个API分别由不同的3个服务所提供,那么客户端可能需要发起3个请求才能获取到完整的数据。并且,多个服务可能分布在不同的域中,那么在消费者和提供者之间需要进行数据打通,即在多个域之间需要两两互通。例如,客户端(即消费者)发起的一个请求需要调用3个API,但是这3个API由不同的3个域中的服务(即提供者)来提供,每个域中的服务提供一个API,那么客户端就需要分别与3个服务端进行数据打通。在这种情况下,对于一个域(例如消费者所在的域)来说,其需要对外暴露多个接口,这样做无疑降低了安全性与便捷性。第二种,分级的纳管路由转发模式,服务网关是进入系统的唯一节点,由服务网关统一接受所有的服务端请求,再转发给服务端。在这一种实现方式中,由于服务网关是一个高可用组件,前期必须针对服务网关投入资源进行单独开发部署和管理,另外,服务网关也可能会造成多余的网络跳转,降低服务效率。
有鉴于此,本申请实施例提供一种服务治理方法,通过分级分域的办法,包括划分公共域和功能域,使用公共域来实现分级纳管、统一路由(跨域能力调用机制)、服务实例自动化配置、对域建立分级机制等,可以自动实现域内和跨域的服务治理策略,使得功能域只需要与公共域进行数据打通,避免多个功能域之间进行数据打通时需要手动配置带来的各种问题,可以显著提高服务治理能力的可用性、可靠性,更适应网络架构的管理需求。
下面集合附图对本申请实施例提供的技术方案做进一步介绍。
示例性的,图1示出了本申请实施例提供的一种服务治理的系统示意图,如图1所示,该服务治理的系统100可以包括多个域,将多个域中的一个指定为公共域110,其它的为功能域120。在功能域120中包括n个子功能域,分别记为功能域121,…,功能域12n。在每个域中,均可以包括至少一个服务,每个服务都可以通过启动对应的服务实例来提供具体的服务内容(包括服务资源等)。每个服务实例都有自己的的IP与端口。当请求的资源为当前域中的资源时,该请求为同域请求,当请求的资源不是当前域中的资源时,该请求为跨域请求。当请求为同域请求时,域内的消费者可以消费当前消费者所在域内提供的服务能力。当请求为跨域请求时,跨域的消费者可以通过公共域110,消费其它域提供的服务能力,包括公共域110,以及其它的功能域12n。
公共域110可以对公共域110以及多个功能域120中的服务制定服务治理策略。在公共域110中,设置有能力网关组件111,服务治理组件112,以及分级管理组件113。其中,能力网关组件111用于负责路由请求,安全认证,限流等,公共域110中的能力网关与功能域120中的能力网关组件可以联动完成跨域请求调用,其可以提供丰富的特性,实现对服务的高效控制。服务治理组件112主要负责服务的注册,服务目录管理,负载均衡和服务熔断等规则的制定(或机制),其可以维护服务目录,并提供服务状态和详情查询,服务拓扑等服务生命周期管理的功能,可以保证服务的可靠性和稳定性。分级管理组件1113可以实现分级分域的管理,通信调度,功能域120可以通过分级管理组件1113向公共域110进行服务能力配置和状态上报。下面对每个组件的功能进行详细介绍。
能力网关组件111是系统中的执行者,其可以根据系统中指定的各种规则(或机制),来对服务调用请求进行处理。示例性的,图2示出了本申请实施例提供的能力网关组件的的结构示意图。如图2所示,能力网关组件111中可以包括安全认证模块1111,请求路由模块1112,请求限流模块1113。其中,安全认证模块1111可以用于对消费者的请求进行安全验证。例如,可以通过网际互连协议(internet protocol,IP)白名单、应用程序接口密钥(application programming interface key,APIKEY)等方式,防止恶意攻击和非法访问。请求路由模块1112可以用于实现路由功能。具体的,能力网关组件111在接收到消费请求时,可以根据负载均衡算法,将请求分配给多个服务实例,请求路由模块1112可以根据负载均衡算法得到的请求分配信息,将请求转发到具体的服务实例上,从而可以实现请求的快速响应和高可用性。在请求为跨域请求时,请求路由模块1112还可以将请求路由到相应的子功能域12n中的能力网关组件。请求限流模块1113可以用于实现限流的功能。具体的,能力网关组件111在接收到消费请求时,可以通过限制并发数以及时间窗口访问量,来防止因为请求过多而导致系统瘫痪或服务崩溃。示例性的,图3示出了本申请实施例提供的一种域内消费时能力网关组件的工作示意图。如图3所示,域内的消费者发起一个服务调用请求,能力网关组件111接收消费者发起的服务调用请求。通过安全认证模块1111对该服务调用请求进行安全认证,安全认证通过之后,可以由请求路由模块1112,将该服务调用请求转发至具体的服务实例上,以对该服务调用请求进行响应。
除此之外,能力网关组件111还可以实现性能监控以及日志记录等功能。能力网关组件111可以对当前所在域进行实时监控系统性能、进程状态、网络流量等信息,可以将实时监控到的信息在当前所在域中的日志中进行记录,也可以查询当前所在域的日志中的信息,这样能够有助于及时发现域(例如,公共域110、功能域120)中出现的问题,进而提高系统的运行效率和稳定性。
能力网关组件111还可以与功能域120中的各个子功能域进行数据传输。具体的,能力网关组件111可以接收各个子功能域中的能力网关组件所发送的请求,以及将该请求的响应返回给子功能域中的的能力网关组件。这样,通过能力网关模块111可以实现服务的统一入口
服务治理组件112主要用于制定规则,例如熔断规则,负载均衡规则等,在服务治理组件制定规则之后,可以将这些制定好的规则同步到能力网关组件111中,使得能力网关组件在处理调用请求时,可以依据服务治理组件112中制定的规则来处理。能力网关组件111也可以是在处理服务调用请求时,主动查询服务治理组件112,以获取指定的规则。还可以是每隔固定的时间(例如30s等),服务治理组件112将指定的规则下发至能力网关组件111。示例性的,图4是本申请实施例提供的一种服务治理组件的结构示意图。如图4所示,服务治理组件112中可以包括服务目录模块1121,服务注册模块1122,服务熔断模块1123,负载均衡模块1124。其中,服务目录模块1121中包括两类服务目录,第一类服务目录是用于存储公共域110内注册的服务的服务信息,包括服务实例以及服务实例提供的服务能力,第二类服务目录是用于存储功能域120中的各个子功能域所注册的服务的服务信息,以及服务能力与功能域的对应关系,其中,服务信息可以包括服务实例以及服务实例提供的服务能力。服务目录中存储有服务信息,以及提供该服务的实例的信息。此时的实例可以为多个。服务注册模块1122,可以用于接收本域(公共域110)内的服务实例的注册信息,将实例的注册信息注册至服务目录模块1121,还可以用于接收其它域(功能域120中的各个子功能域12n)内的服务实例的注册信息,将实例的注册信息注册至服务目录模块1121。其中,实例的注册信息可以包括实例的IP与实例的端口。当注册信息为各个子功能域内的服务实例的注册信息时,该注册信息可以为各个子功能域的能力网关的地址。通过服务注册模块1122以及服务发现功能,可以使调用者能够查找并获取到注册的服务信息,可以保证服务之间的可靠通信。同时,通过服务注册和服务发现的方式,可以减少服务之间的耦合度,实现了增强服务治理的可伸缩性和灵活性。通过服务注册和发现,系统可以自动化管理、维护、升级服务,这样提高了系统的可用性和可维护性,同时,服务注册和发现也为故障恢复、负载均衡、流量控制等功能提供了基础支持。服务熔断模块1123,可以用于制定服务熔断的规则,例如在请求调用的服务出现不可用,或者响应超时的情况时,又或者请求数量已到达系统设定的阈值,停止对该服务的调用。这样可以防止因为一个服务的不可用导致整个系统出现崩溃。举例来说,在一个固定的时间窗口(例如,20秒、30秒等)内,服务调用失败的比例或次数达到一个固定的阈值(例如10次),就拒绝后续调用该服务的请求,在一定时间(例如30秒)之后,再次接受调用该服务的请求,若此时的请求失败,则继续等待一定时间(还是30秒),若此时的请求正常,则恢复正常的请求调用。负载均衡模块1124可以用于制定负载均衡的规则,例如根据负载均衡算法,获取到请求所需的多个实例中有能力提供服务的实例,举例来说,实例1、实例2、实例3均可以提供请求所需的服务,当实例1、实例2、实例3都空闲时,则负载均衡模块1124可以为请求随机分配一个实例,当只有实例3空闲时,则直接给请求分配实例3。
分级管理组件113可以用于对域建立分级机制,以实现对分布式系统中不同的域和服务的管理。具体的,分级管理组件113可以接收功能域120中各个子功能域发送的服务能力信息,将接收到的服务能力信息传输至服务治理组件112,以实现功能域120中各个子功能域12n的服务能力注册的功能。
以上即是对公共域110的介绍。接下来对功能域120进行介绍。
请继续参阅图1,如图1所示,在功能域120中包括n个子功能域,每个子功能域12n都可以对该功能域12n制定服务治理策略。在每个子功能域12n中,均设置有能力网关组件1201,服务治理组件1202,以及分级管理组件1203。
其中,能力网关组件1201中包括安全认证模块1211,请求路由模块1212,请求限流模块1213。其中,安全认证模块1211,请求路由模块1212,请求限流模块1213的功能可以参阅前述公共域110中能力网关组件111中安全认证模块111,请求路由模块1112,请求限流模块1113的相关描述,此处不再赘述。示例性的,图5示出了本申请实施例提供的一种跨域消费时能力网关组件的工作示意图。如图5所示,消费者发起了一个服务调用请求,公共域110中的能力网关组件111将该服务调用请求,转发至该请求对应的功能域12n中的能力网关组件1201,由能力网关组件1201中的安全认证模块1211对该服务调用请求进行安全认证,安全认证通过之后,可以由请求路由模块1212将该请求路由至对应的服务实例。其中,消费者可以是公共域110中的消费者,即该服务调用请求为公共域内的消费者发起的。消费者还可以是子功能域中的消费者,即公共域110中的能力网关组件111,接收消费者所在的子功能域中的能力网关组件发送的服务调用请求,然后继续前述过程。
服务治理组件1202,同样包括服务目录模块,服务注册模块,服务熔断模块,负载均衡模块。其中,服务目录模块用于存储该模块所在的子功能域中的服务信息。子功能域中的服务目录模块与公共域中的服务目录模块1121的区别在于,子功能域中的服务目录模块中只储存有该模块所在的子功能域中的服务信息,并没有存储其它域中的服务信息。服务注册模块用于将服务信息注册至服务目录模块。服务熔断模块与负载均衡模块的作用可以参考前述服务熔断模块1123,负载均衡模块1124中的相关介绍,此处不再赘述。
分级管理组件1203,用于将子功能域中提供服务能力的实例的地址,转换为能力网关地址,将能力网关地址发送至公共域110,由公共域110中的服务治理模112块对能力网关地址进行存储,以使得将功能域12n可以根据能力网关地址接收请求。这样,分级管理组件1203将其所在的子功能域12n中的服务能力,向公共域110进行注册,公共域110可以根据子功能域12n中的服务能力进行调用。这样既可以将子功能域12n中的服务能力纳入公共域110中进行管理,又可以提升各个域(包括功能域110和功能域120)中服务能力的组合和复用,使得各个域之间的服务访问可以更为便捷,促进跨域业务的稳定性。
示例性的,请参阅图6,图6是本申请实施例提供的一种分级管理的流程示意图。如图6所示,子功能域12n中的每个服务实例,将自身的服务信息注册至服务治理组件1202,服务治理组件1202将注册的服务信息发送至分级管理组件1203。分级管理组件1203接收到服务实例的注册信息后,可以将该注册信息发送至公共域110中的分级管理组件113。公共域110中的分级管理组件113接收子功能域12n中的分级管理组件1203所发送的服务实例的注册信息,将该注册信息发送服务治理组件112,由服务治理组件112对子功能域12n中的服务实例信息进行注册。这样,在一个消费请求需要调用子功能域12n中的服务实例时,公共域110可以将该请求正确的发送至子功能域12n。
这样,各个子功能域将自身的服务能力通过分级管理组件上报给公共域,通过公共域中的服务治理组件,将本域(即公共域)及功能域(即各个子功能域)中的服务能力进行统一的的管控(即分级纳管,统一路由),然后通过能力网关组件进行请求的路由。通过这样的方式,使得每一个子功能域仅仅与公共域之间进行数据打通,而不需要与系统中其余的子功能域之间进行数据打通,这样不仅可以提高服务处理效率,还可以降低跨域服务系统的复杂性。同时,每个子功能域还可以保留自身的安全控制、负载均衡等机制,进一步的提高了服务的可靠性。
以上即是对本申请实施例提供的服务治理系统的介绍,下面通过具体的示例对本申请实施例提供的一种服务治理的方法做进一步介绍。
示例性的,图7是本申请实施例提供的一种服务治理方法的流程示意图。该服务治理方法可以应用于图1所示的服务治理系统100中的公共域110。如图7所示,该服务治理方法的流程可以包括如下步骤:
S701:获取消费者发起的服务调用请求,其中,消费者为服务调用请求的发起方(即发起服务调用请求的服务实例)。
在本实施例中,公共域可以获取消费者发出的服务调用请求。由于在本实施例中以一条服务调用请求为例来进行描述,因此数据传递过程中的一些模块(例如熔断、限流、负载均衡等)不进行介绍,具体模块可以参考上述服务治理系统中的相关描述。
在一些可能的实施例中,消费者为公共域中的消费者。图8示出了本申请实施例提供的一种数据交互过程示意图,具体的业务场景为公共域中的消费者需要调用功能域121中的服务。在该数据交互过程中,消费者为公共域中的消费者,公共域110中的服务治理组件112可以直接获取到消费者发出的服务调用请求。
在一些可能的实施例中,消费者为功能域中的消费者。图9示出了本申请实施例提供的另一种数据交互过程示意图,具体的业务场景为功能域121中的消费者需要调用功能域122中的服务。在该数据交互的过程中,消费者为子功能域121中的消费者。具体的,子功能域121中的消费者发起一个服务调用请求,该调用请求通过子功能域121中的能力网关组件1201,将服务调用请求发送至公共域110,公共域110中的能力网关组件111接收该服务调用请求,并将该服务调用请求转发给服务治理组件112。
S702:基于服务调用请求,获取服务调用请求对应的服务信息,该服务信息包括IP与端口。
在本实施例中,在获取到消费者发起的服务调用请求后,可以通过服务治理组件中的服务目录模块,查询服务调用请求具体所需要调用的服务的服务信息,确定能够提供该服务的实例所在的IP地址与端口。
在一些可能的实施例中,消费者为公共域中的消费者。请继续参阅图8,服务调用请求所需调用的服务,由功能域121中的服务实例1所提供,则服务治理组件112在获取到消费者发出的服务调用请求后,查询服务目录,获取该服务调用请求所需调用的服务所对应的实例(即服务实例1),以及该服务实例所对应的服务信息(即功能域121域中的能力网关组件的地址),例如IP与端口。
在一些可能的实施例中,消费者为功能域中的消费者。请继续参阅图9,能力网关组件111在接收到子功能域121中的能力网关组件1201所发送的服务调用请求后,查询服务目录。服务治理组件112在查询服务目录后,可以获取能够提供该服务的实例所对应的服务信息,使得能力网关组件111可以根据该服务信息来对服务调用请求进行处理。
S703:将服务调用请求路由至该服务地址。
在本实施例中,能力网关组件在获取到服务调用请求所对应的服务信息后,可以根据服务信息中所包含的IP地址与端口,将服务调用请求发送至该IP地址与端口所对应的功能域中,以使得该功能域对服务调用请求作出响应。具体的,能力网关组件将该服务调用请求发送至服务信息所对应的功能域中的能力网关组件。例如,请参阅图8,服务调用请求所需调用的服务,由功能域121中的服务实例1所提供,能力网关组件111获取到能力网关组件1201的IP与端口,根据获取到的IP与端口,将服务调用请求发送至能力网关组件1201。
S704:接收服务调用请求的响应结果,将该响应结果返回发起服务调用请求的消费者。
在本实施例中,功能域对服务调用请求进行响应,并得到响应结果。在得到响应结果后,将该响应结果返回至公共域。公共域接收该响应结果,并将该响应结果发送至消费者。举例来说,请继续参阅图8,功能域121中的能力网关组件1201接收能力网关组件111所发送的服务调用请求,在对该请求进行安全认证等操作后,由请求路由模块1212将该请求进行路由,传递至服务实例1,由服务实例1对该服务调用请求进行响应,并得到响应结果。在得到响应结果后,功能域121将这个响应结果通过能力网关组件1201,发送至能力网关组件111。能力网关组件111在接收到该响应结果后,将该响应结果返回至消费者。
在一些可能的实施例中,消费者为功能域中的消费者。此时公共域获取到服务调用请求的响应结果后,将该响应结果返回至发起请求的功能域,由功能域中的能力网关组件接收该响应结果,并将该响应结果返回给消费者。具体的,请参考图9,功能域122中的能力网关组件1201在接收到服务调用请求后,在对该请求进行安全认证等操作后,由请求路由模块1212将该请求进行路由,传递至服务实例1,由服务实例1对该服务调用请求进行响应,并得到响应结果。在得到响应结果后,功能域122将这个响应结果通过能力网关组件1201,发送至能力网关组件111。能力网关组件111在接收到该响应结果后,再将这个响应结果返回至功能域121中的消费者。
以上即是对本申请实施例提供的服务治理方法的介绍。在请求跨域访问(即跨域的数据交互)时,实现跨域交互通常有两种模式,两两互通模式和分级纳管路由转发模式。通过上述各实施例中所介绍的内容可知,本申请实施例中所提供的方案是属于分级纳管路由转发模式的一种,通过分级分域的方式,划分公共域和功能域、分级纳管、统一路由(即跨域能力调用机制)、服务实例自动化配置、对域建立分级机制等,能够自动实现域内和跨域的服务治理策略,避免手动配置带来的各种问题,显著提高服务治理能力的可用性、可靠性、以及可扩展性,更适应网络架构的管理需求。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。本申请的任意实施例的任意特征的全部或部分在不矛盾的前提下,可以自由地、任何地组合。组合后的技术方案也在本申请的范围之内。
基于上述实施例中的方法,本申请实施例还提供一种服务治理的装置。
示例性地,图10示出了一种服务治理的装置,该装置可以部署于计算设备。如图10所示,该服务治理设备1000包括获取模块1001和处理模块1002。
其中,获取模块1001用于获取服务实例发起的服务调用请求。处理模块1002,用于基于所述服务调用请求,获取所述服务调用请求对应的服务信息,所述服务信息包括IP与端口。处理模块1002,还用于将所述服务调用请求路由至所述服务地址。处理模块1002还用于接收所述服务调用请求的响应结果,将所述响应结果返回发起服务调用请求的服务实例。
应当理解的是,上述装置用于执行上述实施例中的方法,装置中相应的程序模块,其实现原理和技术效果与上述方法中的描述类似,该装置的工作过程可参考上述方法中的对应过程,此处不再赘述。
本申请还提供一种计算设备1100。如图11所示,计算设备1100包括:总线1102、处理器1104、存储器1106和通信接口1108。处理器1104、存储器1106和通信接口1108之间通过总线1102通信。计算设备1100可以是服务器或终端设备。应理解,本申请不限定计算设备1100中的处理器、存储器的个数。
总线1102可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线1104可包括在计算设备1100各个部件(例如,存储器1106、处理器1104、通信接口1108)之间传送信息的通路。
处理器1104可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器1106可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器1104还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器1106中存储有可执行的程序代码,处理器1104执行该可执行的程序代码以分别实现前述获取模块1001和处理模块1002的功能,从而实现上述实施例中方法的全部或部分步骤。也即,存储器1106上存有用于执行上述实施例方法中全部或部分步骤的指令。
或者,存储器1106中存储有可执行的代码,处理器1104执行该可执行的代码以分别实现前述服务治理装置1000的功能,从而实现上述实施例方法中全部或部分步骤。也即,存储器1106上存有用于执行上述实施例方法中全部或部分步骤的指令。
通信接口1108使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备1100与其他设备或通信网络之间的通信。
基于上述实施例中的方法,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circt,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件命令的方式来实现。软件命令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机命令。在计算机上加载和执行所述计算机程序命令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机命令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机命令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
Claims (10)
1.一种服务治理系统,其特征在于,所述系统包括多个域,所述多个域中的一个为公共域,其余的域为功能域,其中,所述多个域中的每个域内均包含至少一个服务实例,每个服务实例均向所述服务实例所在域以外的域中的服务实例发送服务调用请求;其中,
所述公共域,用于获取服务实例发起的服务调用请求,将所述服务调用请求发送至所述服务调用请求所需调用的服务实例所在的域;
所述功能域中的每一个功能域,用于处理服务请求,并向所述公共域返回处理结果。
2.根据权利要求1所述的系统,其特征在于,所述公共域,包括:
能力网关组件,在所述服务调用请求所需调用的服务实例所在的域为功能域的情况下,所述能力网关组件用于将所述服务调用请求发送至所述服务调用请求所需调用的服务实例所在的功能域,以及,接收功能域返回的响应结果;
服务治理组件,用于存储服务目录,所述服务目录包括所述功能域中各服务实例的服务能力,以及每一个功能域中各服务实例的服务能力与功能域地址的对应关系;
分级管理组件,用于接收所述功能域所发送的服务能力信息。
3.根据权利要求2所述的系统,其特征在于,在所述服务调用请求所需调用的服务实例所在域为公共域的情况下,所述能力网关组件还用于将所述服务调用请求路由至需要调用的服务实例。
4.根据权利要求2所述的系统,其特征在于,所述服务治理组件包括:
服务注册模块,用于将公共域内服务实例的注册信息注册至服务目录;
服务注册模块,还用于将功能域内的服务实例的注册信息注册至服务目录。
5.根据权利要求1所述的系统,其特征在于,所述功能域中的每一个功能域均包括:
能力网关组件,用于与公共域进行数据交互,包括接收公共域发送的服务调度请求,将所述服务调度请求路由至需要调用的服务实例,以及,向所述功能域返回服务调度请求的响应结果;
服务治理组件,用于存储功能域中各服务实例的服务能力;
分级管理组件,用于将功能域中各服务实例的地址及端口发送至公共域。
6.根据权利要求5所述的系统,其特征在于,所述分级管理组件,具体用于:
将功能域中各服务实例的地址及端口转换为能力网关组件的地址及端口,将能力网关组件的地址及端口发送至公共域。
7.根据权利要求1-6任意所述的系统,其特征在于,所述用于获取服务实例发起的服务调用请求,包括:
获取公共域中的服务实例发起的服务调用请求;
或,接收功能域中的服务实例发起的服务调用请求。
8.根据权利要求7所述的系统,其特征在于,所述将所述服务调用请求发送至所述服务调用请求所需调用的服务实例所在的域,包括:
在所述服务调用请求为公共域中的服务实例发起的服务调用请求时,将所述服务调用请求发送至所需调用的功能域;
在所述服务调用请求为功能域中的服务实例发起的服务调用请求时,查询服务治理组件,确定所述服务调用请求所需调用的服务实例所在的域,在所述服务调用请求所需调用的服务实例所在的域为公共域的情况下,将所述服务调用请求路由至所需调用的服务实例,在所述服务调用请求所需调用的服务实例所在的域为功能域的情况下,将所述服务调用请求发送至服务实例所在的功能域。
9.一种服务治理方法,其特征在于,应用于公共域,所述公共域为服务治理系统中指定的域,所述方法包括:
获取服务实例发起的服务调用请求;
基于所述服务调用请求,获取所述服务调用请求对应的服务信息,所述服务信息包括IP与端口;
将所述服务调用请求路由至所述服务地址;
接收所述服务调用请求的响应结果,将所述响应结果返回发起服务调用请求的服务实例。
10.一种服务治理装置,其特征在于,所述装置包括:
获取模块,用于获取服务实例发起的服务调用请求;
处理模块,用于基于所述服务调用请求,获取所述服务调用请求对应的服务信息,所述服务信息包括IP与端口;
处理模块,还用于将所述服务调用请求路由至所述服务地址;
处理模块,还用于接收所述服务调用请求的响应结果,将所述响应结果返回发起服务调用请求的服务实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310997959.6A CN116866415A (zh) | 2023-08-09 | 2023-08-09 | 一种服务治理方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310997959.6A CN116866415A (zh) | 2023-08-09 | 2023-08-09 | 一种服务治理方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116866415A true CN116866415A (zh) | 2023-10-10 |
Family
ID=88232333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310997959.6A Pending CN116866415A (zh) | 2023-08-09 | 2023-08-09 | 一种服务治理方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116866415A (zh) |
-
2023
- 2023-08-09 CN CN202310997959.6A patent/CN116866415A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016184175A1 (zh) | 数据库处理方法及装置 | |
US9749445B2 (en) | System and method for updating service information for across-domain messaging in a transactional middleware machine environment | |
US8914502B2 (en) | System and method for dynamic discovery of origin servers in a traffic director environment | |
US6999997B2 (en) | Method and apparatus for communication of message data using shared queues | |
US20030126196A1 (en) | System for optimizing the invocation of computer-based services deployed in a distributed computing environment | |
US20040019465A1 (en) | Event router and method for handling events in distributing computing applications | |
CN110554927A (zh) | 基于区块链的微服务调用方法 | |
US20070191033A1 (en) | Scalable wireless messaging system | |
CN112738184B (zh) | 一种插件式动态注册分布式微服务网关系统 | |
US9390156B2 (en) | Distributed directory environment using clustered LDAP servers | |
CN114448686B (zh) | 一种基于微服务的跨网络通信装置与方法 | |
CN112804289A (zh) | 一种资源同步方法、装置、设备及存储介质 | |
CN112671554A (zh) | 一种节点故障处理方法及相关装置 | |
JPH08115288A (ja) | 通信管理方法 | |
KR20210044281A (ko) | 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을 보장하기 위한 방법 및 장치 | |
CN116866415A (zh) | 一种服务治理方法与系统 | |
US11663058B1 (en) | Preemptive filtering of events of an event bus with a deterministic filter | |
KR100375796B1 (ko) | 웹 공유 백업 저장장치를 이용한 개인간 직접 통신 분산 네트워크 시스템 | |
CN113542373B (zh) | 用于paas平台的路由服务发现装置及方法 | |
CN114945023B (zh) | 一种网络连接复用方法、装置、设备及介质 | |
CN115883405B (zh) | 一种服务检测系统 | |
CN115314557B (zh) | 一种全球跨区服务调用方法及系统 | |
CN116962547B (zh) | 基于mq的动态数据网关通信方法 | |
CN115150406B (zh) | 跨数据中心分布式esb配置管理系统 | |
WO2023246681A1 (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 |