CN113391820A - 一种高性能的微服务注册调用系统及方法 - Google Patents
一种高性能的微服务注册调用系统及方法 Download PDFInfo
- Publication number
- CN113391820A CN113391820A CN202110666489.6A CN202110666489A CN113391820A CN 113391820 A CN113391820 A CN 113391820A CN 202110666489 A CN202110666489 A CN 202110666489A CN 113391820 A CN113391820 A CN 113391820A
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- service information
- services
- registration
- 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 16
- 238000001514 detection method Methods 0.000 claims description 7
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001052 transient effect Effects 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/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及计算机领域,尤其涉及一种高性能的微服务注册调用系统及方法,该系统包括注册中心以及至少两个微服务;所述至少两个微服务上传各自的服务信息到注册中心;当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务。本发明将不同功能的微服务分开部署,减少部署次数、减少BUG产生的影响、提高用户的体验感。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种高性能的微服务注册调用系统及方法。
背景技术
随着互联网用户的不断增多,传统单体应用不适合现在大流量的时代,因为单体应用的可靠性较差,项目中一个模块出现致命BUG,会导致整个应用宕机。
发明内容
为解决上述问题,本发明提出一种高性能的微服务注册调用系统及方法。
第一方面,本发明实施例提出一种高性能的微服务注册调用系统,包括注册中心以及至少两个微服务;
所述至少两个微服务上传各自的服务信息到注册中心;
当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务。
优选的,所述注册中心判断是否存在上传的服务信息,如果没有,则将对应的微服务加入到心跳轮询列表中,最后时间戳为当前时间,如果有 , 则更新对应的微服务在注册中心的最后时间戳为当前时间。
优选的,所述至少两个微服务每隔设定时间分别向注册中心发送一次心跳去更新注册中心上的最后时间戳,如果注册中心的服务信息发生变化,则重新获取自己需要的服务信息。
优选的,所述注册中心每隔一段时间对当前所有注册的微服务进行一次时间戳判断,如果存在最后更新时间戳大于设定次数检测间隔的微服务,则将对应的微服务标记为下线。
优选的,微服务无法获取下线的微服务的服务信息。
第二方面,本发明实施例提出一种高性能的微服务注册调用方法,其特征在于,包括:
至少两个微服务上传各自的服务信息到注册中心;
当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务。
优选的,注册中心判断是否存在上传的服务信息,如果没有,则将对应的微服务加入到心跳轮询列表中,最后时间戳为当前时间,如果有 , 则更新对应的微服务在注册中心的最后时间戳为当前时间。
优选的,至少两个微服务每隔设定时间分别向注册中心发送一次心跳去更新注册中心上的最后时间戳,如果注册中心的服务信息发生变化,则重新获取自己需要的服务信息。
优选的,注册中心每隔一段时间对当前所有注册的微服务进行一次时间戳判断,如果存在最后更新时间戳大于设定次数检测间隔的微服务,则将对应的微服务标记为下线。
优选的,微服务无法获取下线的微服务的服务信息。
本发明的有益效果:本发明采用至少两个微服务,至少两个微服务上传各自的服务信息到注册中心;当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务,不同功能的微服务分开部署,减少部署次数、减少BUG产生的影响、提高用户的体验感。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明实施例一种高性能的微服务注册调用系统的结构示意图。
图2是本发明实施例一种高性能的微服务注册调用方法的流程示意图。
具体实施方式
以下结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
本发明的基本思想是采用至少两个微服务,至少两个微服务上传各自的服务信息到注册中心;当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务,不同功能的微服务分开部署,减少部署次数、减少BUG产生的影响、提高用户的体验感。
基于上述思想,如图1所示,本发明提出了包括注册中心以及至少两个微服务。至少两个微服务上传各自的服务信息到注册中心;当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务。
在本实施例中,本发明采用至少两个微服务,并且采用注册和调用的方式实现不同微服务的应用,不同功能的微服务分开部署,减少部署次数、减少BUG产生的影响、提高用户的体验感。
当微服务第一次启动的时候将自身拥有的服务信息(当前服务的IP、端口、拥有的服务列表)发送到注册中心。如果注册中心没有,将微服务加入到心跳轮询列表中,最后时间戳为当前时间。如果注册中心有 ,微服务在注册中心的最后时间戳为当前时间,从而实现微服务的注册。
注册中心每隔一段时间对当前所有注册的微服务进行一次时间戳判断,如果有微服务务的最后更新时间戳大于设定次数检测间隔,例如3个检测间隔,就将此微服务标记为下线,其他微服务在下次获取服务信息时将不会再拿到下线的微服务,从而降低注册中心的占有资源。
注册中心使用读写锁的方式进行更新数据或读取数据,当微服务提供上线进行服务信息注册或变更时,采用写锁,当信息没有变化或进行读请求时采用读锁进行操作,适应大流量、高并发。
注册中心之间无数据交互,不追究强一致性,目标是最终一致性。短暂的不一致不影响整体微服务调用,但可以极大提高性能。
客户查询注册中心,采用负载均衡 + 重试的结合方式,查询信息失败之后,将失败的注册中心其进行隔离,优先请求其他正常的注册中心。
客户端对每次获取注册信息的请求耗时排序,优先从延迟比较小的注册中心获取信息。
注册中心与常见的zookeeper集群等模式不同,是去中心化的,注册中心与注册中心之间需要数据交互. 本实施例中注册中心集群间不需要数据交互,因此当注册中心压力过大时,可直接水平扩容多台。
每个微服务每隔设定时间向注册中心发送一次心跳去更新注册中心上的时间戳,同时如果注册中心的微服务有发生变化的话再拉取一遍自己需要的服务信息。
当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务,结合本地缓存及注册中心的服务信息,实现微服务的快速调用。
基于上述系统实施例,相应的,如图2所示,本发明还提出,包括以下步骤:
S1:至少两个微服务上传各自的服务信息到注册中心;
S2:当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务。
在一实施例中,注册中心判断是否存在上传的服务信息,如果没有,则将对应的微服务加入到心跳轮询列表中,最后时间戳为当前时间,如果有 , 则更新对应的微服务在注册中心的最后时间戳为当前时间。
在一实施例中,至少两个微服务每隔设定时间分别向注册中心发送一次心跳去更新注册中心上的最后时间戳,如果注册中心的服务信息发生变化,则重新获取自己需要的服务信息。
在一实施例中,注册中心每隔一段时间对当前所有注册的微服务进行一次时间戳判断,如果存在最后更新时间戳大于设定次数检测间隔的微服务,则将对应的微服务标记为下线。
在一实施例中,微服务无法获取下线的微服务的服务信息。
基于方法实施例中的具体方案及有益效果均在系统实施例中描述,因此不再赘述。
本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (10)
1.一种高性能的微服务注册调用系统,其特征在于,包括注册中心以及至少两个微服务;
所述至少两个微服务上传各自的服务信息到注册中心;
当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务。
2.根据权利要求1所述的一种高性能的微服务注册调用系统,其特征在于,
所述注册中心判断是否存在上传的服务信息,如果没有,则将对应的微服务加入到心跳轮询列表中,最后时间戳为当前时间,如果有 , 则更新对应的微服务在注册中心的最后时间戳为当前时间。
3.根据权利要求1所述的一种高性能的微服务注册调用系统,其特征在于,
所述至少两个微服务每隔设定时间分别向注册中心发送一次心跳去更新注册中心上的最后时间戳,如果注册中心的服务信息发生变化,则重新获取自己需要的服务信息。
4.根据权利要求1所述的一种高性能的微服务注册调用系统,其特征在于,
所述注册中心每隔一段时间对当前所有注册的微服务进行一次时间戳判断,如果存在最后更新时间戳大于设定次数检测间隔的微服务,则将对应的微服务标记为下线。
5.根据权利要4所述的一种高性能的微服务注册调用系统,其特征在于,
微服务无法获取下线的微服务的服务信息。
6.一种高性能的微服务注册调用方法,其特征在于,包括:
至少两个微服务上传各自的服务信息到注册中心;
当一服务发起调用时,判断本地缓存中是否存在被调用微服务的服务信息,如果没有,则从注册中心获取被调用微服务的服务信息,并根据被调用微服务的服务信息调用对应的微服务;如果有,则根据本地缓存的被调用微服务的服务信息调用对应的微服务。
7.根据权利要求6所述的一种高性能的微服务注册调用方法,其特征在于,
注册中心判断是否存在上传的服务信息,如果没有,则将对应的微服务加入到心跳轮询列表中,最后时间戳为当前时间,如果有 , 则更新对应的微服务在注册中心的最后时间戳为当前时间。
8.根据权利要求6所述的一种高性能的微服务注册调用方法,其特征在于,
至少两个微服务每隔设定时间分别向注册中心发送一次心跳去更新注册中心上的最后时间戳,如果注册中心的服务信息发生变化,则重新获取自己需要的服务信息。
9.根据权利要求6所述的一种高性能的微服务注册调用方法,其特征在于,
注册中心每隔一段时间对当前所有注册的微服务进行一次时间戳判断,如果存在最后更新时间戳大于设定次数检测间隔的微服务,则将对应的微服务标记为下线。
10.根据权利要9所述的一种高性能的微服务注册调用方法,其特征在于,微服务无法获取下线的微服务的服务信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110666489.6A CN113391820A (zh) | 2021-06-16 | 2021-06-16 | 一种高性能的微服务注册调用系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110666489.6A CN113391820A (zh) | 2021-06-16 | 2021-06-16 | 一种高性能的微服务注册调用系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113391820A true CN113391820A (zh) | 2021-09-14 |
Family
ID=77621382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110666489.6A Pending CN113391820A (zh) | 2021-06-16 | 2021-06-16 | 一种高性能的微服务注册调用系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113391820A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114629637A (zh) * | 2022-03-09 | 2022-06-14 | 航天科工智慧产业发展有限公司 | 一种微服务安全管理的方法及其应用系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234666A (zh) * | 2018-01-16 | 2018-06-29 | 云宏信息科技股份有限公司 | 一种微服务调用系统、方法及计算机存储介质 |
CN108282368A (zh) * | 2018-01-24 | 2018-07-13 | 云宏信息科技股份有限公司 | 一种微服务管理系统、方法及计算机存储介质 |
CN109714319A (zh) * | 2018-12-06 | 2019-05-03 | 深圳市中农网有限公司 | 微服务的管理系统、方法、装置、计算机设备及存储介质 |
CN111488420A (zh) * | 2020-04-02 | 2020-08-04 | 中国科学院地理科学与资源研究所 | 去中心微服务化区域洪水预警水信息系统及其集成方法 |
-
2021
- 2021-06-16 CN CN202110666489.6A patent/CN113391820A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234666A (zh) * | 2018-01-16 | 2018-06-29 | 云宏信息科技股份有限公司 | 一种微服务调用系统、方法及计算机存储介质 |
CN108282368A (zh) * | 2018-01-24 | 2018-07-13 | 云宏信息科技股份有限公司 | 一种微服务管理系统、方法及计算机存储介质 |
CN109714319A (zh) * | 2018-12-06 | 2019-05-03 | 深圳市中农网有限公司 | 微服务的管理系统、方法、装置、计算机设备及存储介质 |
CN111488420A (zh) * | 2020-04-02 | 2020-08-04 | 中国科学院地理科学与资源研究所 | 去中心微服务化区域洪水预警水信息系统及其集成方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114629637A (zh) * | 2022-03-09 | 2022-06-14 | 航天科工智慧产业发展有限公司 | 一种微服务安全管理的方法及其应用系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286503B (zh) | 多注册中心的微服务统一管理方法、装置、设备及介质 | |
US7716353B2 (en) | Web services availability cache | |
US8635185B2 (en) | System and method for providing session affinity in a clustered database environment | |
US7260818B1 (en) | System and method for managing software version upgrades in a networked computer system | |
US7370064B2 (en) | Database remote replication for back-end tier of multi-tier computer systems | |
CN112087333A (zh) | 一种微服务注册中心集群及其信息处理方法 | |
US20070124437A1 (en) | Method and system for real-time collection of log data from distributed network components | |
US20120023116A1 (en) | System and method for conversion of jms message data into database transactions for application to multiple heterogeneous databases | |
EP0926608A2 (en) | Distributed persistent storage for intermittently connected clients | |
US20120158825A1 (en) | Scalable push-based architecture for web applications | |
US10826812B2 (en) | Multiple quorum witness | |
JP2005531855A (ja) | Opcサーバリダイレクションマネージャ | |
CN102148850A (zh) | 一种集群系统的业务处理方法及集群系统 | |
CN106302596A (zh) | 一种服务发现的方法和装置 | |
US10069941B2 (en) | Scalable event-based notifications | |
CN110719311B (zh) | 分布式协调服务方法、系统及计算机可读存储介质 | |
CN106681861A (zh) | 一种新环境隔离的配置数据管理方法及系统 | |
CN110830582A (zh) | 一种基于服务器集群选主方法和装置 | |
US20060123121A1 (en) | System and method for service session management | |
CN113391820A (zh) | 一种高性能的微服务注册调用系统及方法 | |
CN113938464A (zh) | 一种请求访问方法及终端 | |
CN116112569B (zh) | 微服务调度方法及管理系统 | |
US7680838B1 (en) | Maintaining data synchronization in a file-sharing environment | |
CN114547052B (zh) | 一种分布式系统缓存更新的方法 | |
CN114090338B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210914 |
|
RJ01 | Rejection of invention patent application after publication |