CN113641400A - 一种多版本服务共用微服务公共资源的方法、api网关和管理系统 - Google Patents
一种多版本服务共用微服务公共资源的方法、api网关和管理系统 Download PDFInfo
- Publication number
- CN113641400A CN113641400A CN202110915718.3A CN202110915718A CN113641400A CN 113641400 A CN113641400 A CN 113641400A CN 202110915718 A CN202110915718 A CN 202110915718A CN 113641400 A CN113641400 A CN 113641400A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- version
- routing
- microservice
- 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
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 42
- 238000011160 research Methods 0.000 abstract description 4
- 238000004891 communication Methods 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000002955 isolation Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 241000287219 Serinus canaria Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于通信技术领域,其公开了一种多版本服务共用微服务公共资源的方法,当收到客户端发送的服务请求时,对服务请求进行解析,得到该服务请求中所含的微服务的信息以及各微服务的依赖关系;根据该服务请求中所含的微服务的信息、各微服务的依赖关系、各微服务的路由配置信息生成路由信息;各微服务根据该路由信息依序进行微服务的调用。该方法通过自研服务路由组件,可实现多版本共存实现公共服务资源共用,进一步的优化,结合分布式任务中心、消息中心,有效利用微服务公共资源,实现了多版本服务共存。同时,本发明还公开了API网关和管理系统。
Description
技术领域
本发明涉及通信技术领域,具体为一种多版本服务共用微服务公共资源的方法、API网关和管理系统。
背景技术
随着业务发展迅速,单体服务逐渐被替换为分布式服务。具有模块复用、易于扩展等优势的同时,分布式服务也带来了新的问题。即服务迭代过程中多版本共存,公共服务如何共用,客户端如何访问特定版本服务。
目前通用的处理方案有使用蓝绿发布或金丝雀发布解决。附图1为蓝绿发布的解决方案,其涉及版本更新时,需要设置两个服务器来运行;当完成新版本的微服务部署后,路由全量切换到新版本。
附图1金丝雀发布的解决方案,金丝雀发布是通过部署新版本,切换部分流量到新版本,稳定后再切换全量到新版本。
由上可见,这两种方式都需要部署新旧两套系统,不能兼容多版本服务共存,也无法做到公共服务资源共用。
发明内容
本发明的目的在于提供一种多版本服务共用微服务公共资源的方法,该方法通过自研服务路由组件,可实现多版本共存实现公共服务资源共用,进一步的优化,结合分布式任务中心、消息中心,有效利用微服务公共资源,实现了多版本服务共存。同时,本发明还公开了API网关和管理系统。
为实现上述目的,本发明提供如下技术方案:一种多版本服务共用微服务公共资源的方法,所述方法具体为:当一个微服务同时存在新版本微服务和旧版本微服务时,获取旧版本微服务和新版本微服务的路由配置信息;
当收到客户端发送的服务请求时,对服务请求进行解析,得到该服务请求中所含的微服务的信息以及各微服务的依赖关系;
根据该服务请求中所含的微服务的信息、各微服务的依赖关系、各微服务的路由配置信息生成路由信息;各微服务根据该路由信息依序进行微服务的调用。
在上述的多版本服务共用微服务公共资源的方法中,所述方法还涉及一分布式任务中心和消息队列,当需要将上一级微服务的处理结果发送至下一级微服务时,上一级微服务将处理结果发送至任务中心,由任务中心将处理结果放入消息队列,并由下一级微服务中的新版本微服务或旧版本微服务消费;所述下一级微服务为同时具有新版本微服务和旧版本微服务的微服务;所述处理结果中含有所述路由信息。
在上述的多版本服务共用微服务公共资源的方法中,在配置所述新版本微服务时,服务注册中心对该新版本微服务进行注册并由路由服务路由组件为该新版本微服务配置路由配置信息。
同时,本发明还公开了一种用于多版本服务共用微服务公共资源管理的API网关,包括如下模块:
服务请求解析模块:用于对服务请求进行解析,得到该服务请求中所含的微服务的信息以及各微服务的依赖关系;
路由配置信息获取模块:用于从服务路由组件获取各微服务的路由配置信息,所述微服务包括旧版本微服务和新版本微服务;
路由信息生成模块:用于根据服务请求中所含的微服务的信息、各微服务的依赖关系、各微服务的路由配置信息生成路由信息,各微服务根据该路由信息依序进行微服务的调用。
最后,本发明还公开了一种多版本服务共用微服务公共资源管理系统,包括如下组件:
服务路由组件:用于为各微服务配置路由配置信息,所述微服务包括旧版本微服务和新版本微服务;
服务注册中心:用于接受各微服务的注册;
如上所述的API网关;所述API网关用于解析服务请求、从服务路由组件获取该服务请求关联的微服务的路由配置信息并生成路由信息,并将路由信息加入到服务请求中发送给该服务请求所涉及的第一个微服务。
在上述的多版本服务共用微服务公共资源管理系统中,还包括分布式任务中心和消息队列,当需要将上一级微服务的处理结果发送至下一级微服务时,上一级微服务将处理结果发送至任务中心,由任务中心将处理结果放入消息队列,并由下一级微服务中的新版本微服务或旧版本微服务消费;所述下一级微服务为同时具有新版本微服务和旧版本微服务的微服务;所述处理结果中含有所述路由信息。
与现有技术相比,本发明的有益效果是:
本方案实现了多版本服务共用微服务公共资源,可以灵活配置服务请求调用链路的各服务版本。通过自研服务路由组件,结合分布式任务中心、消息中心,有效利用微服务公共资源,实现了多版本服务共存,可以解决多人同步开发服务隔离的问题,也可以解决生产环境多版本共用及灰度测试问题。
附图说明
图1-2为本发明的背景技术的流程方框图;
图3为本发明的实施例1和2的一种实现形式的结构框图;
图4为本发明的实施例1和2的另外一种实现形式的结构框图;
图5为本发明的实施例1的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图3-5,一种多版本服务共用微服务公共资源的方法,所述方法具体为:当一个微服务同时存在新版本微服务和旧版本微服务时,获取新版本微服务的路由配置信息;
步骤1:当收到客户端发送的服务请求时,对服务请求进行解析,得到该服务请求中所含的微服务的信息以及各微服务的依赖关系;
步骤2:根据该服务请求中所含的微服务的信息、各微服务的依赖关系、各微服务的路由配置信息生成路由信息;各微服务根据该路由信息依序进行微服务的调用。
可参考图3,图3中,存在服务A、B、C,其中服务B具有新版本和旧版本,为了实现新旧版本共存,在新版本微服务进行注册时,由服务路由组件进行路由配置(当然旧版本也要进行注册和路由配置),API网关收到客户端的服务请求时,解析该请求,获取完成该请求所必须的微服务有哪些以及各微服务的依赖关系,根据微服务的依赖关系以及所涉及的微服务的路由配置信息生成路由信息,将该路由信息加入到服务请求中,并发送给服务A,服务A完成相关服务后生成处理结果,将路由信息加入处理结果,根据路由信息将处理结果发送到服务B2.0,服务B2.0完成服务生成含有路由信息的处理结果,发送至服务C完成服务。
为了解决多人同步开发服务隔离的问题以及解决生产环境多版本共用及灰度测试问题,所述方法还涉及一分布式任务中心和消息队列,当需要将上一级微服务的处理结果发送至下一级微服务时,上一级微服务将处理结果发送至任务中心,由任务中心将处理结果放入消息队列,并由下一级微服务中的新版本微服务或旧版本微服务消费;所述下一级微服务为同时具有新版本微服务和旧版本微服务的微服务;所述处理结果中含有所述路由信息。
在多人同步开发等场景中,设置分布式任务中心,服务A的处理结果会发送至分布式任务中心,分布式任务中心将处理结果放到对应的队列中,服务B订阅了该队列的主题,根据处理结果中的路由信息,服务B2.0获取该处理结果进行后续处理。
本方案实现了多版本服务共用微服务公共资源,可以灵活配置服务请求调用链路的各服务版本。通过自研服务路由组件,结合分布式任务中心、消息中心,有效利用微服务公共资源,实现了多版本服务共存,可以解决多人同步开发服务隔离的问题,也可以解决生产环境多版本共用及灰度测试问题。
实施例2
参考图3和图4,一种多版本服务共用微服务公共资源管理系统,包括如下组件:
服务路由组件:用于为各微服务配置路由配置信息,所述微服务包括旧版本微服务和新版本微服务;
服务注册中心:用于接受各微服务的注册;
API网关:用于解析服务请求、从服务路由组件获取该服务请求关联的微服务的路由配置信息并生成路由信息,并将路由信息加入到服务请求中发送给该服务请求所涉及的第一个微服务;
具体来说,API网关包括如下模块:
服务请求解析模块:用于对服务请求进行解析,得到该服务请求中所含的微服务的信息以及各微服务的依赖关系;
路由配置信息获取模块:用于从服务路由组件获取各微服务的路由配置信息,所述微服务包括旧版本微服务和新版本微服务;
路由信息生成模块:用于根据服务请求中所含的微服务的信息、各微服务的依赖关系、各微服务的路由配置信息生成路由信息,各微服务根据该路由信息依序进行微服务的调用。
分布式任务中心和消息队列,当需要将上一级微服务的处理结果发送至下一级微服务时,上一级微服务将处理结果发送至任务中心,由任务中心将处理结果放入消息队列,并由下一级微服务中的新版本微服务或旧版本微服务消费;所述下一级微服务为同时具有新版本微服务和旧版本微服务的微服务;所述处理结果中含有所述路由信息。
其运行的过程为:微服务在服务注册中心注册,然后由服务路由组件配置路由信息;客户端将服务请求发送至服务请求解析模块,服务请求解析模块解析服务请求,并将解析结果发送至路由信息生成模块,路由信息生成模块从路由配置信息获取模块获取相关的微服务的路由配置信息,并根据服务请求中所含的微服务的信息、各微服务的依赖关系、各微服务的路由配置信息生成路由信息。
API网关将服务请求中加入路由信息发送给服务A,由后续的服务完成相关任务即可。
为了解决多人同步开发服务隔离的问题以及解决生产环境多版本共用及灰度测试问题,当需要将上一级微服务的处理结果发送至下一级微服务时,上一级微服务将处理结果发送至任务中心,由任务中心将处理结果放入消息队列,并由下一级微服务中的新版本微服务或旧版本微服务消费;所述下一级微服务为同时具有新版本微服务和旧版本微服务的微服务;所述处理结果中含有所述路由信息。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (6)
1.一种多版本服务共用微服务公共资源的方法,其特征在于,所述方法具体为:当一个微服务同时存在新版本微服务和旧版本微服务时,获取旧版本微服务和新版本微服务的路由配置信息;
当收到客户端发送的服务请求时,对服务请求进行解析,得到该服务请求中所含的微服务的信息以及各微服务的依赖关系;
根据该服务请求中所含的微服务的信息、各微服务的依赖关系、各微服务的路由配置信息生成路由信息;各微服务根据该路由信息依序进行微服务的调用。
2.根据权利要求1所述的多版本服务共用微服务公共资源的方法,其特征在于,所述方法还涉及一分布式任务中心和消息队列,当需要将上一级微服务的处理结果发送至下一级微服务时,上一级微服务将处理结果发送至任务中心,由任务中心将处理结果放入消息队列,并由下一级微服务中的新版本微服务或旧版本微服务消费;所述下一级微服务为同时具有新版本微服务和旧版本微服务的微服务;所述处理结果中含有所述路由信息。
3.根据权利要求1所述的多版本服务共用微服务公共资源的方法,其特征在于,在配置所述新版本微服务时,服务注册中心对该新版本微服务进行注册并由路由服务路由组件为该新版本微服务配置路由配置信息。
4.一种用于多版本服务共用微服务公共资源管理的API网关,其特征在于,包括如下模块:
服务请求解析模块:用于对服务请求进行解析,得到该服务请求中所含的微服务的信息以及各微服务的依赖关系;
路由配置信息获取模块:用于从服务路由组件获取各微服务的路由配置信息,所述微服务包括旧版本微服务和新版本微服务;
路由信息生成模块:用于根据服务请求中所含的微服务的信息、各微服务的依赖关系、各微服务的路由配置信息生成路由信息,各微服务根据该路由信息依序进行微服务的调用。
5.一种多版本服务共用微服务公共资源管理系统,其特征在于,包括如下组件:
服务路由组件:用于为各微服务配置路由配置信息,所述微服务包括旧版本微服务和新版本微服务;
服务注册中心:用于接受各微服务的注册;
如权利要求4所述的API网关;所述API网关用于解析服务请求、从服务路由组件获取该服务请求关联的微服务的路由配置信息并生成路由信息,并将路由信息加入到服务请求中发送给该服务请求所涉及的第一个微服务。
6.根据权利要求5所述的多版本服务共用微服务公共资源管理系统,其特征在于,还包括分布式任务中心和消息队列,当需要将上一级微服务的处理结果发送至下一级微服务时,上一级微服务将处理结果发送至任务中心,由任务中心将处理结果放入消息队列,并由下一级微服务中的新版本微服务或旧版本微服务消费;所述下一级微服务为同时具有新版本微服务和旧版本微服务的微服务;所述处理结果中含有所述路由信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110915718.3A CN113641400A (zh) | 2021-08-10 | 2021-08-10 | 一种多版本服务共用微服务公共资源的方法、api网关和管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110915718.3A CN113641400A (zh) | 2021-08-10 | 2021-08-10 | 一种多版本服务共用微服务公共资源的方法、api网关和管理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113641400A true CN113641400A (zh) | 2021-11-12 |
Family
ID=78420574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110915718.3A Pending CN113641400A (zh) | 2021-08-10 | 2021-08-10 | 一种多版本服务共用微服务公共资源的方法、api网关和管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641400A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208738A (zh) * | 2022-06-07 | 2022-10-18 | 珠海金智维信息科技有限公司 | 基于微服务架构的rpa升级系统、方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541746A (zh) * | 2020-04-09 | 2020-08-14 | 哈尔滨工业大学 | 面向用户需求变化的多版本并存的微服务自适应方法 |
CN112000348A (zh) * | 2020-07-28 | 2020-11-27 | 金蝶医疗软件科技有限公司 | 服务灰度发布的控制方法、装置、计算机设备 |
CN112596933A (zh) * | 2021-02-26 | 2021-04-02 | 全时云商务服务股份有限公司 | 一种基于消息事件通信的微服务系统 |
CN112965700A (zh) * | 2021-05-17 | 2021-06-15 | 太平金融科技服务(上海)有限公司 | 基于路由的微服务处理方法、装置、计算机设备和介质 |
CN113055465A (zh) * | 2021-03-11 | 2021-06-29 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
-
2021
- 2021-08-10 CN CN202110915718.3A patent/CN113641400A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541746A (zh) * | 2020-04-09 | 2020-08-14 | 哈尔滨工业大学 | 面向用户需求变化的多版本并存的微服务自适应方法 |
CN112000348A (zh) * | 2020-07-28 | 2020-11-27 | 金蝶医疗软件科技有限公司 | 服务灰度发布的控制方法、装置、计算机设备 |
CN112596933A (zh) * | 2021-02-26 | 2021-04-02 | 全时云商务服务股份有限公司 | 一种基于消息事件通信的微服务系统 |
CN113055465A (zh) * | 2021-03-11 | 2021-06-29 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
CN112965700A (zh) * | 2021-05-17 | 2021-06-15 | 太平金融科技服务(上海)有限公司 | 基于路由的微服务处理方法、装置、计算机设备和介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208738A (zh) * | 2022-06-07 | 2022-10-18 | 珠海金智维信息科技有限公司 | 基于微服务架构的rpa升级系统、方法和装置 |
CN115208738B (zh) * | 2022-06-07 | 2023-06-27 | 珠海金智维信息科技有限公司 | 基于微服务架构的rpa升级系统、方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230209408A1 (en) | Network slice deployment method and apparatus | |
CN107222324B (zh) | 网络服务的业务配置方法和装置 | |
CN109391490B (zh) | 网络切片的管理方法和装置 | |
JP2010170567A (ja) | プッシュコンテンツの配信および処理を容易にする装置および関連方法 | |
CN115733746B (zh) | 一种服务网格单元的部署方法、装置、设备及存储介质 | |
CN111090587A (zh) | 投产点服务测试方法、装置、设备及存储介质 | |
CN110309231A (zh) | 一种跨机房的数据同步方法及系统 | |
CN111404628B (zh) | 一种时间同步方法和装置 | |
CN112187958A (zh) | 微服务注册、发现转发的方法及装置 | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN110391940A (zh) | 服务地址的响应方法、装置、系统、设备和存储介质 | |
CN113641400A (zh) | 一种多版本服务共用微服务公共资源的方法、api网关和管理系统 | |
CN114840329A (zh) | 一种基于区块链的云原生混合集成方法 | |
CN111611317B (zh) | 区块链分布式存储分组方法、设备和存储介质 | |
CN107979619A (zh) | 一种twamp会话协商方法、客户端及服务端 | |
CN113472848A (zh) | 一种虚拟机和容器的网络融合方法、装置及相关设备 | |
CN116248629B (zh) | 一种sca设备组件的注册优化方法 | |
CN102857953A (zh) | 一种基站自配置的方法及装置 | |
CN114138259B (zh) | 适配多云平台的多微服务分布式框架的构建系统及方法 | |
CN114501347A (zh) | 异构系统间信息交互方法、装置及系统 | |
CN112804313B (zh) | 基于跨域边缘节点的数据同步方法、装置、设备及介质 | |
CN105656716B (zh) | 一种协议模块性能测试方法及系统 | |
CN114398035A (zh) | 利用组件提供服务的方法、装置、设备和计算机可读介质 | |
CN104580098A (zh) | 一种服务共享方法及装置 | |
CN114175826A (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 |