CN110740172B - 一种基于微服务架构的路由管理方法、装置和系统 - Google Patents
一种基于微服务架构的路由管理方法、装置和系统 Download PDFInfo
- Publication number
- CN110740172B CN110740172B CN201910930714.5A CN201910930714A CN110740172B CN 110740172 B CN110740172 B CN 110740172B CN 201910930714 A CN201910930714 A CN 201910930714A CN 110740172 B CN110740172 B CN 110740172B
- Authority
- CN
- China
- Prior art keywords
- service
- service provider
- list
- providers
- service providers
- 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/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
- 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
技术领域
本发明涉及计算机信息处理领域,具体而言,涉及一种基于微服务架构的路由管理方法、装置和系统。
背景技术
在传统的IT行业软件大多都是各种独立系统的堆砌,这些系统的问题总结来说就是扩展性差,可靠性不高,维护成本高。
应运而生了微服务架构,微服务架构是一类将单一应用程序作为由众多微服务构成之套件加以开发的方式,其中各项微服务都拥有自己的进程并实现通信。这些微服务围绕业务功能建立而成,且凭借自动化部署机制实现独立部署,微服务的目的是有效的拆分应用,实现敏捷开发和部署。
由于微服务应用是分布式系统,需要对进行大量的服务提供者进行调用,对服务提供者的稳定性要求较高,目前技术中是根据用户的请求随机提供服务提供者,而随机选取的服务提供者可能处于不可用状态,容易导致服务雪崩效应。
发明内容
本发明旨在解决现有端口提供方式容易导致服务雪崩效应。
为了解决上述技术问题,本发明第一方面提出一种基于微服务架构的路由管理方法,包括:
接收用户发送的调用请求;
通过过滤器获取注册中心提供的服务提供者信息,所述服务提供者信息包括服务提供者列表;
根据所述服务提供者列表计算列表中的服务提供者的服务可用分,根据所述服务可用分对列表中的服务提供者排序;
根据所述服务提供者排序选取服务提供者为用户提供服务。
根据本发明的一种优选实施方式,所述过滤器为Dubbo过滤器。
根据本发明的一种优选实施方式,所述服务提供者信息还包括服务提供者IP地址以及服务方法。
根据本发明的一种优选实施方式,根据所述服务提供者列表计算列表中的服务提供者的服务可用分具体包括:
获取服务提供者在一段时间窗口内的服务调用参数,根据所述服务调用参数计算每个窗口的服务可用分;
根据每个窗口的服务可用分计算所述服务提供者的服务可用分。
根据本发明的一种优选实施方式,所述根据每个窗口的服务可用分计算所述服务提供者的服务可用分具体包括:
使用滑动窗口算法计算所述服务提供者的服务可用分。
根据本发明的一种优选实施方式,根据所述服务提供者排序选取服务提供者为用户提供服务具体包括:
随机或轮训选取排名靠前的N个服务提供者中的一名,将选取的服务提供者提供给所述用户,其中N为预置的正整数。
根据本发明的一种优选实施方式,所述方法还包括:
对所述提供服务的服务提供者进行监控,获取服务提供者的服务调用参数,设置调用阈值以及休息时间,如果所述服务调用参数超过所述调用阈值,则屏蔽该服务提供者,从所述服务提供者列表中随机或轮训选取其他服务提供者为所述用户提供服务;
过了所述休息时间对屏蔽的服务提供者进行流量预热重试,如果重试通过则取消对该服务提供者的屏蔽。
根据本发明的一种优选实施方式,所述方法还包括:对所述服务提供者列表中所有服务提供者进行监控,当列表中超过一半的服务提供者被屏蔽,向管理人员发送告警通知。
本发明的第二方面提出一种基于微服务架构的路由管理装置,包括:
接收模块,用于接收用户发送的调用请求;
过滤模块,用于通过过滤器获取注册中心提供的服务提供者信息,所述服务提供者信息包括服务提供者列表;
排序模块,用于根据所述服务提供者列表计算列表中的服务提供者的服务可用分,根据所述服务可用分对列表中的服务提供者排序;
服务提供模块,用于根据所述服务提供者排序选取服务提供者为用户提供服务。
根据本发明的一种优选实施方式,所述过滤器为Dubbo过滤器。
根据本发明的一种优选实施方式,所述服务提供者信息还包括服务提供者IP地址以及服务方法。
根据本发明的一种优选实施方式,根据所述服务提供者列表计算列表中的服务提供者的服务可用分具体包括:
获取服务提供者在一段时间窗口内的服务调用参数,根据所述服务调用参数计算每个窗口的服务可用分;
根据每个窗口的服务可用分计算所述服务提供者的服务可用分。
根据本发明的一种优选实施方式,所述根据每个窗口的服务可用分计算所述服务提供者的服务可用分具体包括:
使用滑动窗口算法计算所述服务提供者的服务可用分。
根据本发明的一种优选实施方式,根据所述服务提供者排序选取服务提供者为用户提供服务具体包括:
随机或轮训选取排名靠前的N个服务提供者中的一名,将选取的服务提供者提供给所述用户,其中N为预置的正整数。
根据本发明的一种优选实施方式,所述方法还包括:
对所述提供服务的服务提供者进行监控,获取服务提供者的服务调用参数,设置调用阈值以及休息时间,如果所述服务调用参数超过所述调用阈值,则屏蔽该服务提供者,从所述服务提供者列表中随机或轮训选取其他服务提供者为所述用户提供服务;
过了所述休息时间对屏蔽的服务提供者进行流量预热重试,如果重试通过则取消对该服务提供者的屏蔽。
根据本发明的一种优选实施方式,所述方法还包括:对所述服务提供者列表中所有服务提供者进行监控,当列表中超过一半的服务提供者被屏蔽,向管理人员发送告警通知。
本发明的第三方面提出一种用于信贷的反欺诈系统,包括:
存储单元,用于存储计算机可执行程序;
处理单元,用于读取所述存储单元中的计算机可执行程序,以执行所述基于微服务架构的路由管理方法。
本发明的第四方面提出一种计算机可读介质,用于存储计算机可读程序,所述计算机可读程序用于执行所述的基于微服务架构的路由管理方法。
本发明的技术方案通过对各个服务提供者进行计算服务可用分,根据获得的服务可用分排序,根据排序选取服务提供者为用户提供服务,解决了现有的服务提供者提供方式容易导致服务雪崩效应的问题。
附图说明
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
图1是本发明实施例中基于微服务架构的路由管理方法的流程示意图;
图2是本发明实施例中微服务总体架构的结构示意图;
图3是本发明实施例中基于微服务架构的路由管理装置的结构示意图;
图4是本发明实施例中基于微服务架构的路由管理系统的结构框架示意图;
图5是本发明实施例中计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图来更加全面地描述本发明的示例性实施例,虽然各示例性实施例能够以多种具体的方式实施,但不应理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例是为了使本发明的内容更加完整,更加便于将发明构思全面地传达给本领域的技术人员。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理单元装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
图1是本发明的基于微服务架构的路由管理方法。如图1所示,本发明的方法具有如下步骤:
S1、接收用户发送的调用请求。
在本实施方式中,微服务总体架构包括注册中心、服务提供者和用户三个部分,如图2所示。其中服务提供者为多个,每个服务提供者提供微服务。
微服务总体架构的流程为,首先服务提供者向注册中心进行注册,注册服务提供者的IP地址以及提供的服务类型。当用户需要调用微服务时,向注册中心进行订阅,内容包括用户需要调用的微服务。注册中心向用户返回通知信息,通知信息中包括服务提供者列表,服务提供者列表中包括能够提供微服务的各个提供微服务的IP地址。用户从服务提供者列表中选取服务提供者进行调用。
S2、通过过滤器获取注册中心提供的服务提供者信息,所述服务提供者信息包括服务提供者列表。
在上述技术方案的基础上进一步的,过滤器为Dubbo过滤器。
在上述技术方案的基础上进一步的,服务提供者信息还包括服务提供者IP地址以及服务方法。
在本实施方式中所使用的过滤器为Dubbo过滤器。Dubbo过滤器为Web过滤器。由于用户在对服务提供者进行调用时使用的是RPC请求,所有的的RPC请求都会通过Dubbo过滤器。因此通过Dubbo过滤器可以获取注册中心提供给用户的服务提供者信息,服务提供者信息中包括服务提供者列表,服务提供者列表中记载有服务提供者IP地址以及服务方法。
S3、根据所述服务提供者列表计算列表中的服务提供者的服务可用分,根据所述服务可用分对列表中的服务提供者排序。
在上述技术方案的基础上进一步的,获取服务提供者在一段时间窗口内的服务调用参数,根据所述服务调用参数计算每个窗口的服务可用分;
根据每个窗口的服务可用分计算所述服务提供者的服务可用分。
在本实施方式中,获取一段时间内服务提供者的服务调用参数,时间单位可以为每秒或每分钟,即每个窗口表示1秒或1分钟。服务调用参数包括通过数、拒绝数、异常数、调用耗时等等,可以根据需要选取其中的几种对服务提供者的健康度进行计算,计算服务可用分。
在上述技术方案的基础上进一步的,使用滑动窗口算法计算所述服务提供者的服务可用分。
在本实施方式中,为不同的服务调用参数设置不同的权重,根据每个窗口内的服务调用参数计算每个窗口的健康度。然后设置步长,利用滑动窗口计算服务提供者的服务可用分。
下面通过实施例来说明使用滑动窗口算法计算服务可用分。
实施例1:
在本实施例中时间单位为秒,获取服务提供者5秒的服务调用参数,服务调用参数选取通过数、拒绝数和异常数。
分别为通过数、拒绝数和异常数设置不同的权重,根据健康度算法计算每个窗口的健康度。经过计算,每个窗口的健康度如下:
t1 | t2 | t3 | t4 | t5 |
健康度=80 | 健康度=85 | 健康度=90 | 健康度=95 | 健康度=75 |
设置滑动窗口步长为2。则滑动窗口长度内健康度最大值为185。
则该服务提供者的服务可用分=185/2=92.5分。
在本实施方式中,计算出服务提供者列表中所有服务提供者的服务可用分。根据服务提供者的服务可用分对所有服务提供者进行排序。
S4、根据所述服务提供者排序选取服务提供者为用户提供服务。
在上述技术方案的基础上进一步的,随机或轮训选取排名靠前的N个服务提供者中的一名,将选取的服务提供者提供给所述用户,其中N为预置的正整数。
在本实施方式中,预先设置N,随机或轮训选取排名靠前的N个服务提供者中的一名,将该服务提供者提供给用户。通过这种方式将服务可用分比较高的服务提供者提供给用户进行微服务调用。
本发明的基于微服务架构的路由管理方法进一步的还包括
S5、对所述提供服务的服务提供者进行监控,获取服务提供者的服务调用参数,设置调用阈值以及休息时间,如果所述服务调用参数超过所述调用阈值,则屏蔽该服务提供者,从所述服务提供者列表中随机或轮训选取其他服务提供者为所述用户提供服务;过了所述休息时间对屏蔽的服务提供者进行流量预热重试,如果重试通过则取消对该服务提供者的屏蔽。
在本实施方式中,为了保证服务提供者的服务持续可用,还对提供服务的服务提供者的进行监控,监控服务提供者的服务调用参数。服务调用参数包括通过数、拒绝数、异常数。预先定义服务调用参数阈值,阈值可以针对服务调用参数中的某一项设定,也可以针对多项进行设定。
在本实施方式中,在对服务提供者进行监控时,获取一段时间内服务提供者的服务调用参数,通过滑动窗口算法计算服务调用参数,判断是否超过预先设置的阈值,如果超过预先设置的阈值则屏蔽该服务提供者,根据预设的N,从排序靠前的N个服务提供者中另选一个为用户提供服务。预设休息时间,过了休息时间后,对被屏蔽的服务提供者进行流量预热重试,监控服务调用参数,如果没有超过阈值则重试通过,取消对该服务提供者的屏蔽。
下面通过实施例来对服务提供者的监控进行说明。
实施例2:
设置调用参数阈值,通过数阈值设置为每秒1000次,异常数阈值设置为每秒10次,设置休息时间为10秒,N=10。
获取5秒钟的服务调用参数,数据如下:
窗口步长为3。
则根据滑动窗口算法,通过数为(500+600+400)/3=500次/秒,异常数为(3+20+10)/3=11次/秒。
虽然通过数没有超过设置的阈值,但异常数已经超过设置的阈值,因此屏蔽该服务提供者10秒钟,从服务提供者列表排序前10中随机选取其他服务提供者为用户提供服务。
10秒钟后,对服务提供者进行流量预热重试,监控服务调用参数,如果没有超过阈值则重试通过,取消对该服务提供者的屏蔽。如果未通过流量预热重试,则再次屏蔽该服务提供者10秒钟。
S6、对所述服务提供者列表中所有服务提供者进行监控,当列表中超过一半的服务提供者被屏蔽,向管理人员发送告警通知。
在本实施方式中,为了保证用户服务的稳定性,对服务提供者列表中所有服务提供者进行监控,同样是采用设置服务调用阈值,获取一段时间内的服务调用参数,判断是否超过预先设置的阈值,如果超过阈值则屏蔽相应的服务提供者。当服务提供者列表中一半以上服务提供者被屏蔽时,出现服务雪崩的风险加大,因此,需要向管理人员发送告警通知,告警通知包括用户信息、服务提供者信息,便于管理人员进行维护和调整。
如图3所示,在本实施例中还提供了一种基于微服务架构的路由管理装置300,路由管理装置300包括:
接收模块301,用于接收用户发送的调用请求。
过滤模块302,用于通过过滤器获取注册中心提供的服务提供者信息,所述服务提供者信息包括服务提供者列表。
在上述技术方案的基础上进一步的,过滤器为Dubbo过滤器。
在上述技术方案的基础上进一步的,服务提供者信息还包括服务提供者IP地址以及服务方法。
在本实施方式中所使用的过滤器为Dubbo过滤器。Dubbo过滤器为Web过滤器。由于用户在对服务提供者进行调用时使用的是RPC请求,所有的的RPC请求都会通过Dubbo过滤器。因此通过Dubbo过滤器可以获取注册中心提供给用户的服务提供者信息,服务提供者信息中包括服务提供者列表,服务提供者列表中记载有服务提供者IP地址以及服务方法。
排序模块303,用于根据所述服务提供者列表计算列表中的服务提供者的服务可用分,根据所述服务可用分对列表中的服务提供者排序。
在上述技术方案的基础上进一步的,获取服务提供者在一段时间窗口内的服务调用参数,根据所述服务调用参数计算每个窗口的服务可用分;
根据每个窗口的服务可用分计算所述服务提供者的服务可用分。
在本实施方式中,获取一段时间内服务提供者的服务调用参数,时间单位可以为每秒或每分钟,即每个窗口表示1秒或1分钟。服务调用参数包括通过数、拒绝数、异常数、调用耗时等等,可以根据需要选取其中的几种对服务提供者的健康度进行计算,计算服务可用分。
在上述技术方案的基础上进一步的,使用滑动窗口算法计算所述服务提供者的服务可用分。
在本实施方式中,为不同的服务调用参数设置不同的权重,根据每个窗口内的服务调用参数计算每个窗口的健康度。然后设置步长,利用滑动窗口计算服务提供者的服务可用分。
服务提供模块304,用于根据所述服务提供者排序选取服务提供者为用户提供服务。
在上述技术方案的基础上进一步的,随机或轮训选取排名靠前的N个服务提供者中的一名,将选取的服务提供者提供给所述用户,其中N为预置的正整数。
在本实施方式中,预先设置N,随机或轮训选取排名靠前的N个服务提供者中的一名,将该服务提供者提供给用户。通过这种方式将服务可用分比较高的服务提供者提供给用户进行微服务调用。
在上述技术方案的基础上进一步的,服务提供模块304对所述提供服务的服务提供者进行监控,获取服务提供者的服务调用参数,设置调用阈值以及休息时间,如果所述服务调用参数超过所述调用阈值,则屏蔽该服务提供者,从所述服务提供者列表中随机或轮训选取其他服务提供者为所述用户提供服务;过了所述休息时间对屏蔽的服务提供者进行流量预热重试,如果重试通过则取消对该服务提供者的屏蔽。
在本实施方式中,为了保证服务提供者的服务持续可用,还对提供服务的服务提供者的进行监控,监控服务提供者的服务调用参数。服务调用参数包括通过数、拒绝数、异常数。预先定义服务调用参数阈值,阈值可以针对服务调用参数中的某一项设定,也可以针对多项进行设定。
在本实施方式中,在对服务提供者进行监控时,获取一段时间内服务提供者的服务调用参数,通过滑动窗口算法计算服务调用参数,判断是否超过预先设置的阈值,如果超过预先设置的阈值则屏蔽该服务提供者,根据预设的N,从排序靠前的N个服务提供者中另选一个为用户提供服务。预设休息时间,过了休息时间后,对被屏蔽的服务提供者进行流量预热重试,监控服务调用参数,如果没有超过阈值则重试通过,取消对该服务提供者的屏蔽。
在上述技术方案的基础上进一步的,服务提供模块304对所述服务提供者列表中所有服务提供者进行监控,当列表中超过一半的服务提供者被屏蔽,向管理人员发送告警通知。
在本实施方式中,为了保证用户服务的稳定性,对服务提供者列表中所有服务提供者进行监控,同样是采用设置服务调用阈值,获取一段时间内的服务调用参数,判断是否超过预先设置的阈值,如果超过阈值则屏蔽相应的服务提供者。当服务提供者列表中一半以上服务提供者被屏蔽时,出现服务雪崩的风险加大,因此,需要向管理人员发送告警通知,告警通知包括用户信息、服务提供者信息,便于管理人员进行维护和调整。
如图4所示,本发明的一个实施例中还公开一种基于微服务架构的路由管理系统,图4显示的路由管理系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
基于微服务架构的路由管理系统400,包括存储单元420,用于存储计算机可执行程序;处理单元410,用于读取所述存储单元中的计算机可执行程序,以执行本发明各种实施方式的步骤。
在本实施方式中基于微服务架构的路由管理系统400还包括,连接不同系统组件(包括存储单元420和处理单元410)的总线430、显示单元440等。
其中,所述存储单元420存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元410执行,使得所述处理单元410执行本发明各种实施方式的步骤。例如,所述处理单元410可以执行如图1所示的步骤。
所述存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(ROM)4203。所述存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
基于微服务架构的路由管理系统400也可以与一个或多个外部设备470(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备470通过输入/输出(I/O)接口450进行与处理单元410进行交互,还可以通过网络适配器460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)进行。网络适配器460可以通过总线430与基于微服务架构的路由管理系统400的其它模块通信。应当明白,尽管图中未示出,基于微服务架构的路由管理系统400中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图5是本发明的一个计算机可读介质实施例的示意图。如图5所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储单元(RAM)、只读存储单元(ROM)、可擦式可编程只读存储单元(EPROM或闪存)、光纤、便携式紧凑盘只读存储单元(CD-ROM)、光存储单元件、磁存储单元件、或者上述的任意合适的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:
S1、接收用户发送的调用请求;
S2、通过过滤器获取注册中心提供的服务提供者信息,所述服务提供者信息包括服务提供者列表;
S3、根据所述服务提供者列表计算列表中的服务提供者的服务可用分,根据所述服务可用分对列表中的服务提供者排序;
S4、根据所述服务提供者排序选取服务提供者为用户提供服务;
S5、对所述提供服务的服务提供者进行监控,获取服务提供者的服务调用参数,设置调用阈值以及休息时间,如果所述服务调用参数超过所述调用阈值,则屏蔽该服务提供者,从所述服务提供者列表中随机或轮训选取其他服务提供者为所述用户提供服务,过了所述休息时间对屏蔽的服务提供者进行流量预热重试,如果重试通过则取消对该服务提供者的屏蔽;
S6、对所述服务提供者列表中所有服务提供者进行监控,当列表中超过一半的服务提供者被屏蔽,向管理人员发送告警通知。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台数据处理设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以执行计算机程序的方法、装置、电子设备或计算机可读介质来实现。可以在实践中使用微处理单元或者数字信号处理单元(DSP)等通用数据处理设备来实现本发明的一些或者全部功能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于微服务架构的路由管理方法,其特征在于,方法包括:
接收用户发送的调用请求;
通过Dubbo过滤器获取注册中心提供的服务提供者信息,所述服务提供者信息包括服务提供者列表;
根据所述服务提供者列表计算列表中的服务提供者的服务可用分,获取服务提供者在一段时间窗口内的服务调用参数,为不同的服务调用参数设置不同的权重,根据每个时间窗口内的服务调用参数计算每个时间窗口的健康度,根据每个时间窗口的健康度使用滑动窗口算法计算所述服务提供者的服务可用分,根据所述服务可用分对列表中的服务提供者排序;
根据所述服务提供者排序选取服务提供者为用户提供服务,并对所述提供服务的服务提供者进行监控,获取服务提供者的服务调用参数,设置调用阈值以及休息时间,如果所述服务调用参数超过所述调用阈值,则屏蔽该服务提供者,从所述服务提供者列表中随机或轮训选取其他服务提供者为所述用户提供服务,过了所述休息时间对屏蔽的服务提供者进行流量预热重试,如果重试通过则取消对该服务提供者的屏蔽,对所述服务提供者列表中所有服务提供者进行监控,当列表中超过一半的服务提供者被屏蔽,发送告警通知。
2.如权利要求1所述的路由管理方法,其特征在于,所述服务提供者信息还包括服务提供者IP地址以及服务方法。
3.如权利要求1所述的路由管理方法,其特征在于,根据所述服务提供者排序选取服务提供者为用户提供服务具体包括:
随机或轮训选取排名靠前的N个服务提供者中的一名,将选取的服务提供者提供给所述用户,其中N为预置的正整数。
4.一种基于微服务架构的路由管理装置,其特征在于,装置包括:
接收模块,用于接收用户发送的调用请求;
过滤模块,用于通过Dubbo过滤器获取注册中心提供的服务提供者信息,所述服务提供者信息包括服务提供者列表;
排序模块,用于根据所述服务提供者列表计算列表中的服务提供者的服务可用分,获取服务提供者在一段时间窗口内的服务调用参数,为不同的服务调用参数设置不同的权重,根据每个时间窗口内的服务调用参数计算每个时间窗口的健康度,根据每个时间窗口的健康度使用滑动窗口算法计算所述服务提供者的服务可用分,根据所述服务可用分对列表中的服务提供者排序;
服务提供模块,用于根据所述服务提供者排序选取服务提供者为用户提供服务,所述服务提供模块还用于:对所述提供服务的服务提供者进行监控,获取服务提供者的服务调用参数,设置调用阈值以及休息时间,如果所述服务调用参数超过所述调用阈值,则屏蔽该服务提供者,从所述服务提供者列表中随机或轮训选取其他服务提供者为所述用户提供服务,过了所述休息时间对屏蔽的服务提供者进行流量预热重试,如果重试通过则取消对该服务提供者的屏蔽,对所述服务提供者列表中所有服务提供者进行监控,当列表中超过一半的服务提供者被屏蔽,发送告警通知。
5.如权利要求4所述的路由管理装置,其特征在于,所述服务提供者信息还包括服务提供者IP地址以及服务方法。
6.如权利要求4所述的路由管理装置,其特征在于,根据所述服务提供者排序选取服务提供者为用户提供服务具体包括:
随机或轮训选取排名靠前的N个服务提供者中的一名,将选取的服务提供者提供给所述用户,其中N为预置的正整数。
7.一种基于微服务架构的路由管理系统,其特征在于,包括:
存储单元,用于存储计算机可执行程序;
处理单元,用于读取所述存储单元中的计算机可执行程序,以执行权利要求1至3中任一项所述的基于微服务架构的路由管理方法。
8.一种计算机可读介质,用于存储计算机可读程序,其特征在于,所述计算机可读程序用于执行权利要求1至3中任一项所述的基于微服务架构的路由管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910930714.5A CN110740172B (zh) | 2019-09-29 | 2019-09-29 | 一种基于微服务架构的路由管理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910930714.5A CN110740172B (zh) | 2019-09-29 | 2019-09-29 | 一种基于微服务架构的路由管理方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110740172A CN110740172A (zh) | 2020-01-31 |
CN110740172B true CN110740172B (zh) | 2022-04-29 |
Family
ID=69268258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910930714.5A Active CN110740172B (zh) | 2019-09-29 | 2019-09-29 | 一种基于微服务架构的路由管理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110740172B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037617A (zh) * | 2022-05-16 | 2022-09-09 | 中国农业银行股份有限公司 | 一种dubbo服务治理的优化方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931656A (zh) * | 2010-09-16 | 2010-12-29 | 武汉大学 | 一种isp友好的分布式服务节点选择和更新方法 |
CN104767776A (zh) * | 2014-01-07 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 一种实时调整网络路由方法、装置及系统 |
CN106506509A (zh) * | 2016-11-15 | 2017-03-15 | 深圳市彬讯科技有限公司 | 可进行服务治理与语言调用的轻量级rpc框架实现方法 |
CN106878427A (zh) * | 2017-02-23 | 2017-06-20 | 北京工业大学 | 一种基于分时信任的微服务调度调度方法以及调度中间件 |
CN106888129A (zh) * | 2017-04-20 | 2017-06-23 | 国家电网公司 | 一种可弹性伸缩的分布式服务管理系统及其方法 |
CN108833996A (zh) * | 2018-07-03 | 2018-11-16 | 湖北大学 | 分布式dash系统中服务节点选择、更新和码率自适应方法 |
CN109246251A (zh) * | 2018-11-13 | 2019-01-18 | 杭州数梦工场科技有限公司 | 一种微服务调用方法、装置、系统、设备及可读存储介质 |
CN109474685A (zh) * | 2018-11-16 | 2019-03-15 | 中国银行股份有限公司 | 一种基于微服务架构下的服务监控方法和系统 |
CN109922158A (zh) * | 2019-03-22 | 2019-06-21 | 泰康保险集团股份有限公司 | 基于微服务的数据处理方法、装置、介质及电子设备 |
WO2019167421A1 (ja) * | 2018-03-01 | 2019-09-06 | 株式会社日立製作所 | シミュレーター、シミュレーション装置、および、シミュレーション方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9483312B2 (en) * | 2010-08-16 | 2016-11-01 | International Business Machines Corporation | Locating service endpoints from a service registry |
US20180026911A1 (en) * | 2016-07-25 | 2018-01-25 | Cisco Technology, Inc. | System and method for providing a resource usage advertising framework for sfc-based workloads |
US10511651B2 (en) * | 2017-04-25 | 2019-12-17 | General Electric Company | Infinite micro-services architecture |
CN107911430A (zh) * | 2017-11-06 | 2018-04-13 | 上海电机学院 | 一种微服务基础设施装置 |
CN108400904B (zh) * | 2018-01-26 | 2021-01-08 | 北京奇艺世纪科技有限公司 | 一种基于微服务架构的健康检查方法和装置 |
CN110191164B (zh) * | 2019-05-20 | 2022-03-22 | 中国工商银行股份有限公司 | 分布式服务接入系统及方法 |
-
2019
- 2019-09-29 CN CN201910930714.5A patent/CN110740172B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931656A (zh) * | 2010-09-16 | 2010-12-29 | 武汉大学 | 一种isp友好的分布式服务节点选择和更新方法 |
CN104767776A (zh) * | 2014-01-07 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 一种实时调整网络路由方法、装置及系统 |
CN106506509A (zh) * | 2016-11-15 | 2017-03-15 | 深圳市彬讯科技有限公司 | 可进行服务治理与语言调用的轻量级rpc框架实现方法 |
CN106878427A (zh) * | 2017-02-23 | 2017-06-20 | 北京工业大学 | 一种基于分时信任的微服务调度调度方法以及调度中间件 |
CN106888129A (zh) * | 2017-04-20 | 2017-06-23 | 国家电网公司 | 一种可弹性伸缩的分布式服务管理系统及其方法 |
WO2019167421A1 (ja) * | 2018-03-01 | 2019-09-06 | 株式会社日立製作所 | シミュレーター、シミュレーション装置、および、シミュレーション方法 |
CN108833996A (zh) * | 2018-07-03 | 2018-11-16 | 湖北大学 | 分布式dash系统中服务节点选择、更新和码率自适应方法 |
CN109246251A (zh) * | 2018-11-13 | 2019-01-18 | 杭州数梦工场科技有限公司 | 一种微服务调用方法、装置、系统、设备及可读存储介质 |
CN109474685A (zh) * | 2018-11-16 | 2019-03-15 | 中国银行股份有限公司 | 一种基于微服务架构下的服务监控方法和系统 |
CN109922158A (zh) * | 2019-03-22 | 2019-06-21 | 泰康保险集团股份有限公司 | 基于微服务的数据处理方法、装置、介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
"微服务架构下基于特征规则的异常检测研究";彭天舒;《中国硕士学位论文全文数据库信息科技辑》;20170501;全文 * |
Nian Liu ; Qifang Chen ; Xinyi Lu ; Jie Liu ; Jianhua Zhang."A Charging Strategy for PV-Based Battery Switch Stations Considering Service Availability and Self-Consumption of PV Energy".《IEEE Transactions on Industrial Electronics》.2015, * |
Also Published As
Publication number | Publication date |
---|---|
CN110740172A (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8606905B1 (en) | Automated determination of system scalability and scalability constraint factors | |
CN111049705A (zh) | 一种监控分布式存储系统的方法及装置 | |
US9588813B1 (en) | Determining cost of service call | |
CN111352800A (zh) | 大数据集群监控方法及相关设备 | |
CN105787077A (zh) | 数据同步方法和装置 | |
CN103763346A (zh) | 一种分布式资源调度方法及装置 | |
US10606688B2 (en) | Resolving conflicts between multiple software and hardware processes | |
US11005718B2 (en) | Determining capabilities of cognitive entities in a distributed network based on application of cognitive protocols | |
CN112016793B (zh) | 基于目标用户群的资源分配方法、装置及电子设备 | |
CN114095567A (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
CN110740172B (zh) | 一种基于微服务架构的路由管理方法、装置和系统 | |
CN108632085B (zh) | 灰度用户管理方法、装置、平台及存储介质 | |
CN107249019A (zh) | 基于业务的数据处理系统、方法、装置和服务器 | |
CN109345249A (zh) | 一种支付失败处理方法及装置 | |
CN112416700A (zh) | 分析启动的预测性故障和smart日志 | |
CN111680869A (zh) | 一种监测投放策略的方法、装置和电子设备 | |
CN111010453A (zh) | 服务请求处理方法、系统、电子设备及计算机可读介质 | |
CN114285786B (zh) | 一种网络链路库的构建方法及装置 | |
CN111681093B (zh) | 一种展示资源页面的方法、装置和电子设备 | |
CN113242282A (zh) | 一种用于目标人群的连续信息推送方法、装置和电子设备 | |
US20200313989A1 (en) | Method and apparatus for variable sampling for outlier mining | |
CN106788829B (zh) | 应急事件的广播方法及装置 | |
CN109635194A (zh) | 用于生成信息的方法和装置 | |
CN111552469B (zh) | 应用程序工程中的文件处理方法、装置及电子设备 | |
CN116954838A (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 |