CN110278284B - 一种服务调用方法及装置 - Google Patents
一种服务调用方法及装置 Download PDFInfo
- Publication number
- CN110278284B CN110278284B CN201910620126.1A CN201910620126A CN110278284B CN 110278284 B CN110278284 B CN 110278284B CN 201910620126 A CN201910620126 A CN 201910620126A CN 110278284 B CN110278284 B CN 110278284B
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- component
- partition
- target
- 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
Images
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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
技术领域
本发明涉及信息处理技术领域,具体涉及一种服务调用方法及装置。
背景技术
在民航信息领域,民航信息云计算应用平台上运行的服务调用系统,承载着民航信息领域从航班管理、机票预订、机场旅客服务等关系旅客出行各方面的业务调用,为民航信息领域的重要服务系统。
随着技术的发展,微服务框架被提出,微服务框架为云计算系统中的一种分布式系统架构,由于在微服务架构下,微服务组件的数量大大增加,相应的微服务访问服务调用系统的频率也会大大增加。但现有技术中的服务调用系统中的所有服务注册信息都存储在一个统一的服务注册库中,任何与服务调用相关的微服务组件的服务注册、服务发现过程都需要频繁的访问该服务注册库,导致该服务注册库信息处理压力大,进而影响整个服务系统的运行稳定性。
发明内容
有鉴于此,本发明实施例提供一种服务调用方法及装置,能够提高整个服务系统的运行稳定性。
一种服务调用方法,所述服务调用方法基于服务调用系统,所述服务调用系统包括:至少一个微服务分区、配置库以及全局注册库;一个微服务分区中包含至少一个微服务组件、至少一个路由组件以及一个本地注册库;所述配置库中存储有微服务组件与微服务分区的对应关系;所述本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息;所述路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用;所述全局注册库中存储有路由组件的属性信息;
所述服务调用方法包括:
依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;
依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;
目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;
目标路由组件将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。
优选的,所述依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件的过程包括:
依据所述微服务分区标识,在所述全局注册库中确定与所述微服务分区标识对应的路由组件;
依据预先设置的路由组件负载均衡规则,从与所述微服务分区标识对应的路由组件中选取一个与所述微服务分区标识对应的目标路由组件。
优选的,在目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件之前,还包括:
目标路由组件从微服务组件调用方接收请求报文;
目标路由组件对所述请求报文进行解析,获取被调用微服务组件的标识。
优选的,所述目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件的过程包括:
所述目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定与所述被调用微服务组件的标识对应的被调用微服务组件;
依据预先设置的微服务组件负载均衡规则,从与所述被调用微服务组件的标识对应的被调用微服务组件中选取一个与所述被调用微服务组件的标识对应的目标被调用微服务组件。
一种服务调用装置,所述服务调用装置基于服务调用系统,所述服务调用系统包括:至少一个微服务分区、配置库以及全局注册库;一个微服务分区中包含至少一个微服务组件、至少一个路由组件以及一个本地注册库;所述配置库中存储有微服务组件与微服务分区的对应关系;所述本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息;所述路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用;所述全局注册库中存储有路由组件的属性信息;
所述服务调用装置包括:
微服务分区标识查询模块,用于依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;
目标路由组件选取模块,用于依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;
目标被调用微服务组件确定模块,用于依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;
请求报文转发模块,用于将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。
优选的,所述目标路由组件选取模块包括:
目标路由组件选取子模块,用于依据所述微服务分区标识,在所述全局注册库中确定与所述微服务分区标识对应的路由组件;依据预先设置的路由组件负载均衡规则,从与所述微服务分区标识对应的路由组件中选取一个与所述微服务分区标识对应的目标路由组件。
优选的,服务调用装置还包括:
请求报文接收模块,用于从微服务组件调用方接收请求报文;
报文解析模块,用于对所述请求报文进行解析,获取被调用微服务组件的标识。
优选的,所述目标被调用微服务组件确定模块包括:
目标被调用微服务组件确定子模块,用于依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定与所述被调用微服务组件的标识对应的被调用微服务组件;依据预先设置的微服务组件负载均衡规则,从与所述被调用微服务组件的标识对应的被调用微服务组件中选取一个与所述被调用微服务组件的标识对应的目标被调用微服务组件。
基于上述技术方案,本发明实施例公开了一种服务调用方法及装置,服务调用方法基于服务调用系统,所述服务调用系统包括:至少一个微服务分区、配置库以及全局注册库;一个微服务分区中包含至少一个微服务组件、至少一个路由组件以及一个本地注册库;所述配置库中存储有微服务组件与微服务分区的对应关系;所述本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息;所述路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用;所述全局注册库中存储有路由组件的属性信息;服务调用方法包括:依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;目标路由组件将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。本申请中将不同的微服务组件进行分区设置,每一微服务分区中都包含一个本地注册库,本申请中的服务调用过程所需的服务注册信息并不是都存储在一个统一的服务注册库中,而是将信息分散存储在全局注册库以及每一微服务分区中的本地注册库中,从而服务调用过程可以访问不同微服务分区中的本地注册库以及全局注册库,避免了服务调用过程仅访问同一个服务注册库的现象,提高整个服务系统的运行稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种服务调用系统的结构框图;
图2为本发明实施例提供的一种服务调用方法的流程图;
图3为本发明实施例提供的另一种服务调用方法的流程图;
图4为本发明实施例提供的一种服务调用装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
传统面向服务的架构中服务组件的动态变化性不强,服务组件的网络位置很少发生变化,基本不会进行服务数量的变化,服务组件部署、运行的过程中使用到服务发现的频次并不多。
随着技术的发展,微服务框架被提出,微服务框架为云计算系统中的一种分布式系统架构,由于在微服务架构下,微服务组件的数量大大增加,微服务组件会被频繁地更新和重新发布,频繁地根据负载均衡情况进行微服务组件数量的动态调整,微服务组件还可能受资源调度影响而从一台服务器迁移到另一台服务器,微服务组件所在的网络位置变化成为一种常态,服务消费者定期向注册库获取服务提供者的最新位置信息、描述信息、状态信息和资源使用信息,上述步骤使得微服务访问服务调用系统的频率大大增加,但现有技术中的服务调用系统中的所有服务注册信息都存储在一个统一的服务注册库中,导致该服务注册库被访问压力陡增。此外,服务注册库还要承担微服务环境下创建分布式系统所带来的额外的复杂性,支持多进程间的通信机制,任何微服务组件发起方都需要从该服务注册库中的获取被调用服务的注册信息,也会增加服务注册库的压力,影响整个服务系统的运行稳定性。
为了能够提高整个服务系统的运行稳定性,本发明实施例公开了如下一种服务调用方法。本发明实施例公开的服务调用方法基于服务调用系统,图1示出了一种服务调用系统的结构框图,所述服务调用系统包括:至少一个微服务分区、配置库以及全局注册库;一个微服务分区中包含至少一个微服务组件、至少一个路由组件以及一个本地注册库;所述配置库中存储有微服务组件与微服务分区的对应关系;所述本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息;所述路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用;所述全局注册库中存储有路由组件的属性信息。
需要说明的是,本发明实施例中按照微服务组件的服务类型以及微服务分区的容量,将不同的微服务组件分配至不同的微服务分区中,一微服务分区中包含的至少一个微服务组件的服务类型相同或相近,一微服务分区中包含的微服务组件的数量依据微服务分区的容量而设置,同一个微服务组件只能被分配到一个微服务分区中,不同微服务分区的容量可以不同。本发明实施例中通过将不同的微服务组件分配至不同的微服务分区中,可以提高不同类型微服务组件的隔离性,并且,由于微服务分区的数量可以动态扩展,因此,微服务组件的数量也可以动态扩展,提高系统扩展性。
所述配置库中存储有微服务组件与微服务分区的对应关系,即某一微服务组件属于哪个分区,例如微服务组件Service A对应微服务分区1,微服务组件Service B对应微服务分区2等。服务消费方发送的服务调用请求,首先会基于配置库所述微服务组件与微服务分区的对应关系、结合全局注册库所存储的各分区路由组件属性信息,被转发至不同微服务分区的路由组件,进行后续的请求分发与服务调度。微服务组件通过订阅配置库的方式,使得微服务组件与配置库保持动态联系,随时更新配置库中微服务组件与微服务分区的对应关系。
一微服务分区中设置一个本地注册库,本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息,本地注册库所在的微服务分区内的微服务组件通过在本地注册库中注册服务的方式,使本地注册库获取本地注册库所在的微服务分区内的微服务组件的属性信息。微服务组件在本地注册库中注册服务的过程主要是针对微服务场景,微服务组件在启动时会向本地注册库注册自身,在停止时会向本地注册库注销自身,如果微服务组件发生故障,在一段时间内不发送心跳之后,也会被本地注册库注销。
本地服务注册库实际上是微服务的一个注册中心,而微服务实际仍部署在该微服务分区内的微服务组件中。本地注册库的目的是对多种形式的服务进行支持,提供所在微服务分区内所有服务生命周期的各个阶段的控制基础。本地服务注册库主要功能包括:服务注册、服务订阅、服务注销等。参照如下表1所示的在本地服务注册库需要的注册内容,服务注册过程涉及到的注册内容主要包括微服务组件的名称、微服务组件地址信息、微服务组件版本信息、微服务组件服务描述文档等属性信息。本地注册库为成功实施分布式微服务架构中微服务分区内服务的选择、调用、增减和重用提供了支持。所有对服务的操作都需要访问本地服务注册库。
服务名 | 地址信息 | 版本信息 | 服务描述 | ... |
Service A | 192.168.6.1:6250 | |||
Service A | 192.168.6.2:6250 | |||
Service B | 192.168.7.1:6250 | |||
... |
表1
路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用,具备对路由组件所在的微服务分区内的微服务组件提供控制功能,例如:对路由组件所在的微服务分区内的微服务组件执行负载均衡和故障隔离等。发送至某一微服务分区内的服务调用请求会通过路由组件统一进行接收,并根据服务调用请求触发本微服务分区内对应微服务组件的数据处理。同一路由组件只能被分配到一个微服务分区中。不同微服务分区中路由组件的个数并不做具体限定,可以依据微服务分区中微服务组件的个数而设定。路由组件通过向本地服务注册库订阅服务的方式,动态获悉本地服务注册库中保存的本地注册库所在的微服务分区内的微服务组件的属性信息。
微服务组件作为服务调用方需要通过在全局注册库中订阅路由的方式,以便于能够动态获取全局注册库中存储的路由组件的属性信息。
全局注册库中存储有各个微服务分区中包含的路由组件的属性信息,路由组件通过向全局注册库注册路由的方式,将自身的属性信息保存在全局注册库中,参照如下表2所示的路由组件注册内容,注册的主要内容包括该路由组件所属的分区名和路由组件的地址信息,的全局注册库提供路由组件的选择、调用、增减和重用功能,支持路由组件的动态变化。
分区名 | 地址信息 |
分区1 | 192.168.6.201:7801 |
分区1 | 192.168.6.202:7801 |
分区2 | 192.168.7.201:7801 |
... | ... |
表2
微服务组件依据不同的服务类型而设置,每一个微服务组件可独立于其它微服务组件进行独立开发、部署及扩展,例如民航信息领域中具有的航班管理微服务组件、机票预订微服务组件、机场旅客服务微服务组件等,本发明实施例不做具体限定。
本发明实施例中所有的微服务组件可以在本微服务分区内的本地注册库中注册服务,而不必再向一个统一的服务注册库注册服务,不同微服务分区内的本地注册库分担了服务注册的压力,提高了整个服务系统的运行稳定性。
图2示出了一种服务调用方法的流程图,参照图2,所述方法可以包括:
步骤S100、依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;
本发明实施例可以利用被调用微服务组件的标识,在配置库中存储的微服务组件与微服务分区对应表中,查询所述被调用微服务组件所属的微服务分区标识。
微服务组件的标识用于唯一标识一微服务组件,可以为微服务组件的名称等,本发明实施例不做具体限定。
步骤S110、依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;
由于全局注册库中存储有路由组件的属性信息,依据所述微服务分区标识,在所述全局注册库选取一个与所述微服务分区标识对应的目标路由组件的路由组件地址等能够唯一标识路由组件的属性信息。路由组件的属性信息标识路由组件的属性,例如:路由组件的名称、地址等,本发明实施例不做具体限定。
依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件的过程包括:依据所述微服务分区标识,在所述全局注册库中确定与所述微服务分区标识对应的路由组件;依据预先设置的路由组件负载均衡规则,从与所述微服务分区标识对应的路由组件中选取一个与所述微服务分区标识对应的目标路由组件。例如依据所述微服务分区标识,在所述全局注册库中确定与所述微服务分区标识对应的路由组件的地址列表,然后依据预先设置的路由组件负载均衡规则,从与所述微服务分区标识对应的路由组件的地址列表中选取一个与所述微服务分区标识对应的目标路由组件的地址。
预先设置的路由组件负载均衡规则为标识路由组件负载均衡的规则。例如,依据预先设置的路由组件负载均衡规则,从与所述微服务分区标识对应的路由组件的地址列表中选取一个负载小于路由组件负载预设值的目标路由组件的地址,负载预设值可以由本领域技术人员进行设定。
步骤S120、目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;
目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件的地址。
步骤S130、目标路由组件将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。
目标路由组件将微服务组件调用方发送的请求报文转发至目标被调用微服务组件对应的地址,目标被调用微服务组件收到请求报文,并对请求报文进行处理后,将请求报文处理结果返回给目标路由组件,目标路由组件再将请求报文处理结果返回给微服务组件调用方。
本发明实施例公开了一种服务调用方法,服务调用方法基于服务调用系统,所述服务调用系统包括:至少一个微服务分区、配置库以及全局注册库;一个微服务分区中包含至少一个微服务组件、至少一个路由组件以及一个本地注册库;所述配置库中存储有微服务组件与微服务分区的对应关系;所述本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息;所述路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用;所述全局注册库中存储有路由组件的属性信息;服务调用方法包括:依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;目标路由组件将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。本申请中将不同的微服务组件进行分区设置,每一微服务分区中都包含一个本地注册库,本申请中的服务调用过程所需的服务注册信息并不是都存储在一个统一的服务注册库中,而是将信息分散存储在全局注册库以及每一微服务分区中的本地注册库中,从而服务调用过程可以访问不同微服务分区中的本地注册库以及全局注册库,避免了服务调用过程仅访问同一个服务注册库的现象,提高整个服务系统的运行稳定性。
并且只有每个微服务分区中的路由组件订阅本微服务分区内的相关服务,路由组件与微服务相比其数量较少,大大降低本地注册库的访问频率。通过每个微服务分区中本地注册库保障微服务组件数量的持续扩展,全局注册库只负责各微服务分区中路由组件的动态注册,与实际微服务业务解耦。由于路由组件数量较少,全局注册库注册压力不大,虽然微服务作为调用方需要订阅全局注册库,但路由组件的变化不频繁,订阅压力也可控。服务调用过程中,服务调用方只需要订阅全局注册库中的路由组件地址信息,屏蔽寻址多个本地注册库的复杂性。
下面,本发明实施例公开了另一种服务调用方法,图3示出了另一种服务调用方法的流程图,参照图3,所述方法可以包括:
步骤S200、依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;
本发明实施例可以利用被调用微服务组件的标识,在配置库中存储的微服务组件与微服务分区对应表中,查询所述被调用微服务组件所属的微服务分区标识。
微服务组件的标识用于唯一标识一微服务组件,可以为微服务组件的名称等,本发明实施例不做具体限定。
步骤S210、依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;
由于全局注册库中存储有路由组件的属性信息,依据所述微服务分区标识,在所述全局注册库选取一个与所述微服务分区标识对应的目标路由组件的路由组件地址等能够唯一标识路由组件的属性信息。路由组件的属性信息标识路由组件的属性,例如:路由组件的名称、地址等,本发明实施例不做具体限定。
依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件的过程包括:依据所述微服务分区标识,在所述全局注册库中确定与所述微服务分区标识对应的路由组件;依据预先设置的负载均衡规则,从与所述微服务分区标识对应的路由组件中选取一个与所述微服务分区标识对应的目标路由组件。例如依据所述微服务分区标识,在所述全局注册库中确定与所述微服务分区标识对应的路由组件的地址列表,然后依据预先设置的负载均衡规则,从与所述微服务分区标识对应的路由组件的地址列表中选取一个与所述微服务分区标识对应的目标路由组件的地址。
预先设置的负载均衡规则为标识路由组件负载均衡的规则。例如,依据预先设置的负载均衡规则,从与所述微服务分区标识对应的路由组件的地址列表中选取一个负载小于负载预设值的目标路由组件的地址,负载预设值可以由本领域技术人员进行设定。
步骤S220、目标路由组件从微服务组件调用方接收请求报文;
请求报文的主要控制字段可以包括:被调用微服务组件的标识(例如flight)、被调用微服务组件的方法名称(例如hasMeal)、请求报文跟踪标记(例如11111111111)等。
步骤S230、目标路由组件对所述请求报文进行解析,获取被调用微服务组件的标识;
目标路由组件对所述请求报文的控制字段进行解析,获取被调用微服务组件的标识。
步骤S240、目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;
目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件的地址。
所述目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件的过程包括:
所述目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定与所述被调用微服务组件的标识对应的被调用微服务组件;依据预先设置的微服务组件负载均衡规则,从与所述被调用微服务组件的标识对应的被调用微服务组件中选取一个与所述被调用微服务组件的标识对应的目标被调用微服务组件。
即目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定与所述被调用微服务组件的标识对应的被调用微服务组件的地址列表,依据预先设置的微服务组件负载均衡规则,从与所述被调用微服务组件的标识对应的被调用微服务组件的地址列表中选取一个与所述被调用微服务组件的标识对应的目标被调用微服务组件的地址。
预先设置的微服务组件负载均衡规则为微服务组件负载均衡的规则。例如,依据预先设置的微服务组件负载均衡规则,从被调用微服务组件的地址列表中选取一个微服务组件负载小于负载预设值的目标被调用微服务组件的地址,微服务组件负载预设值可以由本领域技术人员进行设定。
步骤S250、目标路由组件将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。
下面以一个具体的实例详细说明本发明实施例公开的上述服务调用方法:
预处理过程:
1.服务配置
在配置库中填写服务分区对应表,配置微服务组件与微服务分区的对应关系。
2.服务注册
启动微服务组件,微服务组件向本微服务分区内的本地注册库注册自己的实例地址信息。
3.路由组件注册
启动路由组件,路由组件向全局注册库注册自己的实例地址信息。
服务调用过程:
4.发起调用
假设某个微服务组件A要调用微服务组件B:
(4.1)、微服务组件A基于微服务组件B的服务名查询配置库,获取微服务组件B所属的分区名为“分区2”;
(4.2)、微服务组件A根据“分区2”的分区名查询全局注册库,获取分区2的路由组件地址列表,然后根据预设负载均衡算法(例如round robin、hash等)确定一个地址得到目标路由组件;
(4.3)、微服务组件A组织请求报文,然后与目标路由组件建立连接发送请求报文。
5.路由转发
目标路由组件收到请求报文:
5.1)目标路由组件根据请求报文中的服务名(微服务组件B)查询本地注册库,获取该服务名的地址列表,然后根据预设负载均衡算法(例如round robin、hash等)确定一个地址,得到目标微服务组件B;
5.2)目标路由组件与目标微服务组件B建立连接并向目标微服务组件B转发请求报文,目标微服务组件B收到请求报文,并对请求报文进行处理后,将请求报文处理结果返回给目标路由组件,目标路由组件再将请求报文处理结果返回给微服务组件调用方A。
下面对本发明实施例提供的服务调用装置进行介绍,下文描述的服务调用装置可与上文服务调用方法相互对应参照。
所述服务调用装置基于服务调用系统,所述服务调用系统包括:至少一个微服务分区、配置库以及全局注册库;一个微服务分区中包含至少一个微服务组件、至少一个路由组件以及一个本地注册库;所述配置库中存储有微服务组件与微服务分区的对应关系;所述本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息;所述路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用;所述全局注册库中存储有路由组件的属性信息;图4为本发明实施例提供的服务调用装置的结构框图,参照图4,该服务调用装置可以包括:
微服务分区标识查询模块100,用于依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;
目标路由组件选取模块110,用于依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;
目标被调用微服务组件确定模块120,用于依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;
请求报文转发模块130,用于将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。
所述目标路由组件选取模块包括:
目标路由组件选取子模块,用于依据所述微服务分区标识,在所述全局注册库中确定与所述微服务分区标识对应的路由组件;依据预先设置的路由组件负载均衡规则,从与所述微服务分区标识对应的路由组件中选取一个与所述微服务分区标识对应的目标路由组件。
服务调用装置还包括:
请求报文接收模块,用于从微服务组件调用方接收请求报文;
报文解析模块,用于对所述请求报文进行解析,获取被调用微服务组件的标识。
所述目标被调用微服务组件确定模块包括:
目标被调用微服务组件确定子模块,用于依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定与所述被调用微服务组件的标识对应的被调用微服务组件;依据预先设置的微服务组件负载均衡规则,从与所述被调用微服务组件的标识对应的被调用微服务组件中选取一个与所述被调用微服务组件的标识对应的目标被调用微服务组件。
综上所述:
本发明实施例公开了一种服务调用方法及装置,服务调用方法基于服务调用系统,所述服务调用系统包括:至少一个微服务分区、配置库以及全局注册库;一微服务分区中包含至少一个微服务组件、至少一个路由组件以及一个本地注册库;所述配置库中存储有微服务组件与微服务分区的对应关系;所述本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息;所述路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用;所述全局注册库中存储有路由组件的属性信息;服务调用方法包括:依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;目标路由组件将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。本申请中将不同的微服务组件进行分区设置,每一微服务分区中都包含一个本地注册库,本申请中的服务调用过程所需的信息并不是都存储在一个统一的服务注册库中,而是将信息分散存储在全局注册库以及每一微服务分区中的本地注册库中,从而服务调用过程可以访问不同微服务分区中的本地注册库以及全局注册库,避免了服务调用过程仅访问同一个服务注册库的现象,提高整个服务系统的运行稳定性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种服务调用方法,其特征在于,所述服务调用方法基于服务调用系统,所述服务调用系统包括:至少一个微服务分区、配置库以及全局注册库;一个微服务分区中包含至少一个微服务组件、至少一个路由组件以及一个本地注册库;所述配置库中存储有微服务组件与微服务分区的对应关系;所述本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息;所述路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用;所述全局注册库中存储有路由组件的属性信息;
所述服务调用方法包括:
微服务组件依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;
微服务组件依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;
目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;
目标路由组件将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。
2.根据权利要求1所述的方法,其特征在于,所述微服务组件依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件的过程包括:
微服务组件依据所述微服务分区标识,在所述全局注册库中确定与所述微服务分区标识对应的路由组件;
微服务组件依据预先设置的路由组件负载均衡规则,从与所述微服务分区标识对应的路由组件中选取一个与所述微服务分区标识对应的目标路由组件。
3.根据权利要求1所述的方法,其特征在于,在目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件之前,还包括:
目标路由组件从微服务组件调用方接收请求报文;
目标路由组件对所述请求报文进行解析,获取被调用微服务组件的标识。
4.根据权利要求1所述的方法,其特征在于,所述目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件的过程包括:
所述目标路由组件依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定与所述被调用微服务组件的标识对应的被调用微服务组件;
依据预先设置的微服务组件负载均衡规则,从与所述被调用微服务组件的标识对应的被调用微服务组件中选取一个与所述被调用微服务组件的标识对应的目标被调用微服务组件。
5.一种服务调用装置,其特征在于,所述服务调用装置基于服务调用系统,所述服务调用系统包括:至少一个微服务分区、配置库以及全局注册库;一个微服务分区中包含至少一个微服务组件、至少一个路由组件以及一个本地注册库;所述配置库中存储有微服务组件与微服务分区的对应关系;所述本地注册库中存储有本地注册库所在的微服务分区内的微服务组件的属性信息;所述路由组件用于对路由组件所在的微服务分区内的微服务组件进行调用;所述全局注册库中存储有路由组件的属性信息;
所述服务调用装置包括:
微服务分区标识查询模块,用于依据微服务组件调用方发送的被调用微服务组件的标识,在配置库中查询所述被调用微服务组件所属的微服务分区标识;
目标路由组件选取模块,用于依据所述微服务分区标识,在所述全局注册库中选取一个与所述微服务分区标识对应的目标路由组件;
目标被调用微服务组件确定模块,用于依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定目标被调用微服务组件;
请求报文转发模块,用于将微服务组件调用方发送的请求报文转发至目标被调用微服务组件。
6.根据权利要求5所述的装置,其特征在于,所述目标路由组件选取模块包括:
目标路由组件选取子模块,用于依据所述微服务分区标识,在所述全局注册库中确定与所述微服务分区标识对应的路由组件;依据预先设置的路由组件负载均衡规则,从与所述微服务分区标识对应的路由组件中选取一个与所述微服务分区标识对应的目标路由组件。
7.根据权利要求5所述的装置,其特征在于,服务调用装置还包括:
请求报文接收模块,用于从微服务组件调用方接收请求报文;
报文解析模块,用于对所述请求报文进行解析,获取被调用微服务组件的标识。
8.根据权利要求5所述的装置,其特征在于,所述目标被调用微服务组件确定模块包括:
目标被调用微服务组件确定子模块,用于依据被调用微服务组件的标识,在目标路由组件所属的微服务分区内包含的本地注册库中,确定与所述被调用微服务组件的标识对应的被调用微服务组件;依据预先设置的微服务组件负载均衡规则,从与所述被调用微服务组件的标识对应的被调用微服务组件中选取一个与所述被调用微服务组件的标识对应的目标被调用微服务组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910620126.1A CN110278284B (zh) | 2019-07-10 | 2019-07-10 | 一种服务调用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910620126.1A CN110278284B (zh) | 2019-07-10 | 2019-07-10 | 一种服务调用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110278284A CN110278284A (zh) | 2019-09-24 |
CN110278284B true CN110278284B (zh) | 2021-09-14 |
Family
ID=67964212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910620126.1A Active CN110278284B (zh) | 2019-07-10 | 2019-07-10 | 一种服务调用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110278284B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110333917A (zh) * | 2019-07-19 | 2019-10-15 | 深圳前海微众银行股份有限公司 | 基于微服务的数据处理方法、装置、设备及可读存储介质 |
CN110830461B (zh) * | 2019-10-28 | 2021-08-20 | 杭州涂鸦信息技术有限公司 | 基于tls长连接的跨区的rpc服务调用方法及系统 |
CN113067844B (zh) * | 2020-01-02 | 2022-08-12 | 中国移动通信有限公司研究院 | 服务发现方法、装置及hnrf |
CN111615066B (zh) * | 2020-02-07 | 2021-07-16 | 中国海洋大学 | 一种基于广播的分布式微服务注册及调用方法 |
CN111478955B (zh) * | 2020-03-31 | 2023-04-18 | 招商局金融科技有限公司 | 微服务注册方法、系统、装置和计算机可读存储介质 |
CN111580977B (zh) * | 2020-05-12 | 2023-08-29 | 中国民航信息网络股份有限公司 | 一种资源调整方法及相关设备 |
CN114461291A (zh) * | 2020-10-22 | 2022-05-10 | 北京国双科技有限公司 | 应用程序组件调用方法、装置、电子设备及存储介质 |
CN112653618B (zh) * | 2020-12-07 | 2023-08-08 | 深圳市远行科技股份有限公司 | 微服务应用api端点的网关注册方法及装置 |
CN112597222A (zh) * | 2020-12-16 | 2021-04-02 | 中国建设银行股份有限公司 | 金融数据库连接处理方法、装置、设备及存储介质 |
CN113746928B (zh) * | 2021-09-07 | 2023-01-24 | 中国银行股份有限公司 | 跨云服务调用方法、装置和系统 |
CN116915866B (zh) * | 2023-09-12 | 2023-11-21 | 云粒智慧科技有限公司 | 网关配置方法、网关、微服务和装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401897A (zh) * | 2013-07-15 | 2013-11-20 | 云南电网公司普洱供电局 | 一种分布式服务注册中心构建方法 |
CN105515759A (zh) * | 2015-11-27 | 2016-04-20 | 国网信息通信产业集团有限公司 | 一种微服务注册方法及系统 |
CN106970843A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 远程调用方法和装置 |
CN107566153A (zh) * | 2017-07-21 | 2018-01-09 | 哈尔滨工程大学 | 一种自管理的微服务实现方法 |
CN107832125A (zh) * | 2017-10-10 | 2018-03-23 | 中国银联股份有限公司 | 一种分布式环境下的业务处理方法及装置 |
CN108958730A (zh) * | 2017-08-23 | 2018-12-07 | 北京五八信息技术有限公司 | 应用程序组件共享方法及装置、终端设备及可读存储介质 |
CN109173270A (zh) * | 2018-09-06 | 2019-01-11 | 网易(杭州)网络有限公司 | 一种游戏服务系统和实现方法 |
CN109547570A (zh) * | 2018-12-29 | 2019-03-29 | 深圳云天励飞技术有限公司 | 服务注册方法、装置、注册中心管理设备及存储介质 |
CN109618005A (zh) * | 2019-01-18 | 2019-04-12 | 华为终端有限公司 | 调用服务器的方法和代理服务器 |
CN109673232A (zh) * | 2018-11-02 | 2019-04-26 | 中国农业大学 | 一种基于微服务架构的智慧滴灌云服务管理系统 |
CN109714319A (zh) * | 2018-12-06 | 2019-05-03 | 深圳市中农网有限公司 | 微服务的管理系统、方法、装置、计算机设备及存储介质 |
CN109981716A (zh) * | 2017-12-28 | 2019-07-05 | 北京奇虎科技有限公司 | 一种微服务调用方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10579407B2 (en) * | 2016-10-28 | 2020-03-03 | ShieldX Networks, Inc. | Systems and methods for deploying microservices in a networked microservices system |
-
2019
- 2019-07-10 CN CN201910620126.1A patent/CN110278284B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401897A (zh) * | 2013-07-15 | 2013-11-20 | 云南电网公司普洱供电局 | 一种分布式服务注册中心构建方法 |
CN105515759A (zh) * | 2015-11-27 | 2016-04-20 | 国网信息通信产业集团有限公司 | 一种微服务注册方法及系统 |
CN106970843A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 远程调用方法和装置 |
CN107566153A (zh) * | 2017-07-21 | 2018-01-09 | 哈尔滨工程大学 | 一种自管理的微服务实现方法 |
CN108958730A (zh) * | 2017-08-23 | 2018-12-07 | 北京五八信息技术有限公司 | 应用程序组件共享方法及装置、终端设备及可读存储介质 |
CN107832125A (zh) * | 2017-10-10 | 2018-03-23 | 中国银联股份有限公司 | 一种分布式环境下的业务处理方法及装置 |
CN109981716A (zh) * | 2017-12-28 | 2019-07-05 | 北京奇虎科技有限公司 | 一种微服务调用方法及装置 |
CN109173270A (zh) * | 2018-09-06 | 2019-01-11 | 网易(杭州)网络有限公司 | 一种游戏服务系统和实现方法 |
CN109673232A (zh) * | 2018-11-02 | 2019-04-26 | 中国农业大学 | 一种基于微服务架构的智慧滴灌云服务管理系统 |
CN109714319A (zh) * | 2018-12-06 | 2019-05-03 | 深圳市中农网有限公司 | 微服务的管理系统、方法、装置、计算机设备及存储介质 |
CN109547570A (zh) * | 2018-12-29 | 2019-03-29 | 深圳云天励飞技术有限公司 | 服务注册方法、装置、注册中心管理设备及存储介质 |
CN109618005A (zh) * | 2019-01-18 | 2019-04-12 | 华为终端有限公司 | 调用服务器的方法和代理服务器 |
Non-Patent Citations (2)
Title |
---|
"soa vs msoa comparative analysis";Syed Safdar Hussain Qadri;《IEEE》;20190218;全文 * |
"微服务体系结构实现框架综述";辛园园;《计算机工程与应用》;20181001;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110278284A (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110278284B (zh) | 一种服务调用方法及装置 | |
CN109640319B (zh) | 基于接入信息的调度方法、装置及电子设备 | |
CN111052711B (zh) | 发现由网络存储库功能提供的服务的方法 | |
CN109618005B (zh) | 调用服务器的方法和代理服务器 | |
CN109981716B (zh) | 一种微服务调用方法及装置 | |
US20010042110A1 (en) | System for distributing contents on a network, a method of distribution and a computer program product therefor | |
US20190042276A1 (en) | Service processing system, service processing method, and service update method | |
US20110166952A1 (en) | Facilitating dynamic construction of clouds | |
CN113645304B (zh) | 数据服务处理方法及相关设备 | |
CN105791344A (zh) | 灰度发布业务处理的方法、系统、负载均衡器及服务总线装置 | |
CN110311896B (zh) | 机载平台服务注册中心系统 | |
CN107172214B (zh) | 一种具有负载均衡的服务节点发现方法及装置 | |
CN110784409A (zh) | 一种基于Spring Cloud的微服务灰度发布方法 | |
US20240064197A1 (en) | Prioritising Network Function Nodes | |
CN112579319A (zh) | 一种基于LRU Cache优化的服务调用方法及装置 | |
CN116566984B (zh) | 一种k8s容器集群的路由信息创建方法、装置及电子设备 | |
CN112445774A (zh) | 一种分布式共享文件系统及其数据处理方法 | |
CN111045813A (zh) | 一种任务分发系统及方法 | |
US9760370B2 (en) | Load balancing using predictable state partitioning | |
US20200310828A1 (en) | Method, function manager and arrangement for handling function calls | |
CN105871972A (zh) | 一种视频资源的分布式缓存方法、装置及系统 | |
US20230053967A1 (en) | Group updating method, message sending method, and apparatuses | |
CN115480934A (zh) | 一种分布式数据处理的方法、装置、设备及储存介质 | |
CN110995890B (zh) | 域名请求的调度方法及装置 | |
CN113918215A (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 |