一种对微服务进行服务治理的方法及系统技术方案

技术编号:37998107 阅读:18 留言:0更新日期:2023-06-30 10:12
本发明专利技术提供了一种对微服务进行服务治理的方法及系统,系统包括:服务请求方、服务提供方、服务治理平台、数据库;服务提供方提供服务接口,并在服务请求方调用服务接口时进行鉴权校验;服务请求方调用服务接口前申请服务接口调用授权;服务治理平台内预设服务鉴权规则,服务提供方定时从服务治理平台获取服务鉴权规则至内存,服务鉴权按照优先级提供鉴权开关控制、接口白名单控制、服务白名单控制,实现服务治理策略的服务管控;数据库内存储有服务治理数据,服务治理平台调用数据库内的服务治理数据。本发明专利技术对微服务之间的接口的调用进行管控,保障了系统整体的可用性。保障了系统整体的可用性。保障了系统整体的可用性。

【技术实现步骤摘要】
一种对微服务进行服务治理的方法及系统


[0001]本专利技术涉及微服务架构
,尤其是涉及一种对微服务进行服务治理的方法及系统。

技术介绍

[0002]随着业务的扩展,现有的应用框架系统无法满足需求。因此,通过使用分布式服务框架,提高了开发能力,并使开发结果和实现过程不一致的问题得到了解决,微服务(Microservices)是最近技术圈里非常流行的系统架构解决方案。微服务架构会使得微服务之间有着网状的拓扑结构关系,在可用性和可维护性上带来了很多困难。复杂的调用链使得调用的情况难以定位,在链路中的部分错误可能会影响全局,进而影响了整个系统的可用性,节点的增多也为性能提出了挑战。
[0003]中国专利技术专利名称:微服务治理方法及装置,专利号:CN112506709A,公开了一种微服务治理方法及装置,所述方法包括:通过预定义YAML模板将微服务注册请求发送到注册中心,当所述微服务注册成功时,对所述微服务根据其治理策略类型进行配置,当调用配置好的微服务时,在无需修改微服务代码的情况下,根据所述配置好的微服务对应的治理策略类型,重新启动所述配置好的微服务容器。
[0004]常规的技术方案是通过编码规范进行约束,然后代码走查识别出不合理的服务接口调用。在团队规模较小、微服务数量可控、接口数量不多的情况下没有什么问题,但是在大型团队、微服务数量众多的情况下很难做到有效的管控,并且目前常见的服务接口鉴权、熔断基本都由网关统一处理,通过网关鉴权后对于服务间接口的内部调用没有进行有效管控。

技术实现思路
<br/>[0005]针对现有技术中存在的问题,本专利技术提供了一种对微服务进行服务治理的方法及系统,基于微服务架构下,本专利技术提供了对微服务内部接口调用的服务治理方法,对于服务间的接口调用进行管控,由服务提供方提供服务接口,服务请求方调用接口时需要先申请接口调用授权,授权规则在服务治理平台进行管理。
[0006]本专利技术采用的技术方案如下:
[0007]一种对微服务进行服务治理的系统,包括:服务请求方、服务提供方、服务治理平台、数据库;服务提供方提供服务接口,并在服务请求方调用服务接口时进行鉴权校验;服务请求方调用服务接口前申请服务接口调用授权;服务治理平台内预设服务鉴权规则,服务提供方定时从服务治理平台获取服务鉴权规则至内存,服务鉴权按照优先级提供鉴权开关控制、接口白名单控制、服务白名单控制,实现服务治理策略的服务管控;数据库内存储有服务治理数据,服务治理平台调用数据库内的服务治理数据。
[0008]一种对微服务进行服务治理的方法,包括如下步骤:
[0009]判定服务启动初始化时是否需要启动熔断机制,如果否,则服务请求方封装请求
头的请求信息,并将请求信息发送至服务提供方;如果是,则执行本地熔断;
[0010]服务提供方为服务请求方提供调用接口;
[0011]服务提供方启动后,从nacos获取服务治理开关,服务治理开关打开后,底层依赖定时从服务治理平台获取数据,首次直接拉取数据,以后再拉取数据前进行MD5值比对,当MD5值不一致时,则从服务治理平台根据当前服务名拉取当前服务的鉴权校验规则;
[0012]服务提供方通过服务治理平台获取接口的鉴权信息,并进行鉴权校验,若校验失败,则服务提供方向服务请求方发送异常提醒。
[0013]本专利技术的有益效果为:
[0014]本专利技术的服务熔断机制在业务请求之前进行,因此在触发熔断后,会执行熔断本地方法,不再执行后续的接口调用和业务逻辑处理,当添加服务治理规则后,当前服务在规定的时间窗口内自动从服务治理平台获取新的规则,获取新的规则后当前服务会从熔断状态恢复;相对于将鉴权逻辑放在服务治理平台,该种设计方式将鉴权逻辑放在每个服务中,可以避免因访问压力过大造成访问变慢、请求失败等性能问题,且鉴权熔断逻辑放到每个服务中,也不会因为某几个服务节点异常而引发全局性问题,从而保障了系统整体的可用性;
[0015]本专利技术的服务提供方启动后,会从nacos获取服务治理开关,开关打开后,底层依赖定时从服务治理平台获取数据,首次会直接拉取数据,以后每次获取前先进行MD5值对比,当MD5值不一致时,从服务治理平台根据当前服务名拉取当前服务的鉴权校验规则;本专利技术采用此种方式一方面可以降低数据传输成本,另一方面将服务鉴权校验逻辑放到服务提供方中进行处理,不需要再经过第三方服务进行处理,因每个微服务提供的接口个数有限,本地缓存数据基本不超过10M,资源占用率也可忽略。
附图说明
[0016]图1为本专利技术提供了一种对微服务进行服务治理的系统结构示意图;
[0017]图2为本专利技术还提供了一种对微服务进行服务治理的方法流程图。
具体实施方式
[0018]下面结合附图与实施例对本专利技术做进一步说明:为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。
[0019]如图1所示,本专利技术提供了一种对微服务进行服务治理的系统,包括:服务请求方、服务提供方、服务治理平台、数据库;服务提供方提供服务接口,并在服务请求方调用服务接口时进行鉴权校验;服务请求方调用服务接口前申请服务接口调用授权;服务治理平台内预设服务鉴权规则,服务提供方定时从服务治理平台获取服务鉴权规则至内存,服务鉴权按照优先级提供鉴权开关控制、接口白名单控制、服务白名单控制,实现服务治理策略的
服务管控;数据库内存储有服务治理数据,服务治理平台调用数据库内的服务治理数据。服务治理平台定时从数据库中获取服务治理数据,所述服务治理数据经MD5计算后,以json形式存储至服务请求方的内存中。
[0020]如图2所示,本专利技术还提供了一种对微服务进行服务治理的方法,包括如下步骤:
[0021]判定服务启动初始化时是否需要启动熔断机制,如果否,则服务请求方封装请求头的请求信息,并将请求信息发送至服务提供方;如果是,则执行本地熔断;
[0022]服务提供方为服务请求方提供调用接口;
[0023]服务提供方启动后,从nacos获取服务治理开关,服务治理开关打开后,底层依赖定时从服务治理平台获取数据,首次直接拉取数据,以后再拉取数据前进行MD5值比对,当MD5值不一致时,则从服务治理平台根据当前服务名拉取当前服务的鉴权校验规则;
[0024]服务提供方通过服务治理平台获取接口的鉴权信息,并进行鉴权校验,若校验失败,则服务提供方向服务请求方发送异常提醒。
[0025]下面结合具体实施例解释本专利技术提供的技术方案,本实施例中涉及的名词本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对微服务进行服务治理的系统,其特征在于,包括:服务请求方、服务提供方、服务治理平台、数据库;服务提供方提供服务接口,并在服务请求方调用服务接口时进行鉴权校验;服务请求方调用服务接口前申请服务接口调用授权;服务治理平台内预设服务鉴权规则,服务提供方定时从服务治理平台获取服务鉴权规则至内存,服务鉴权按照优先级提供鉴权开关控制、接口白名单控制、服务白名单控制,实现服务治理策略的服务管控;数据库内存储有服务治理数据,服务治理平台调用数据库内的服务治理数据。2.如权利要求1所述的对微服务进行服务治理的系统,其特征在于,服务治理平台定时从数据库中获取服务治理数据,所述服务治理数据经MD5计算后,以json形式存储至服务请求方的内存中。3.一种对微服务进行服务治理的方法,其特征在于,包括如下步骤:判定服务启动初始化时是否需要启动熔断机制,如果否,则服务请求方封装请求头的请求信息,并将请求信息发送至服务提供方;如果是,则执行本地熔断;服务提供方为服务请求方提供调用接口;服务提供方启动后,从nacos获取服务治理开关,服务治理开关打开后,底层依赖定时从服务治理平台获取数据,首次直接拉取数据,再次拉取数据前进行MD5值比对,当MD5值不一致时,则从服务治理平台根据当前服务名拉取当前服务的鉴权校验规则;服务提供方通过服务治理平台获取接口的鉴权信息,并进行鉴权校验,若校验失败,则服务提供方向服务请求方发送异常提醒。4.如权利要求3所述的对微服务进行治理的方法,其特征在于,当添加服务治理规则后,当前服务在规定的时间窗口内自动从服务治理平台获取新的规则,获取新的规则...

【专利技术属性】
技术研发人员:李超李涛陈伟
申请(专利权)人:众阳健康科技集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1