一种基于熔断和二级缓存的API网关保障服务高可用方法及系统技术方案

技术编号:22467199 阅读:27 留言:0更新日期:2019-11-06 11:04
本发明专利技术公开了一种基于熔断和二级缓存的API网关保障服务高可用方法及系统。本方法为:1)API网关服务接收到调用方发出的服务请求时,从内存中获取API配置信息,确定是否访问Cache,如果开启则从Cache的一级缓存中获取响应结果,如果一级缓存中没有对应的响应结果,则将该服务请求发送给后端服务;2)后端服务根据收到的服务请求生成相应的响应结果并将其放入Cache的一级缓存和二级缓存;如果调用同一个API网关服务的返回异常结果次数达到熔断阀值,则进入该API网关服务的熔断流程,将该API网关服务进入熔断开启状态。本发明专利技术保障服务高可用的同时,提高了用户的体验。

A high availability method and system of API gateway guarantee service based on fusing and two-level cache

【技术实现步骤摘要】
一种基于熔断和二级缓存的API网关保障服务高可用方法及系统
本专利技术涉及API网关、熔断、缓存及服务高可用领域,具体涉及一种基于熔断和二级缓存的API网关保障服务高可用方法及系统。
技术介绍
随着互联网的发展,网络访问流量越来越大,对服务的稳定性和可用性要求越来越高,高可用已经作为衡量一个服务性能的重要标准。API网关通常作为API的统一出入口,同时提供负载均衡、服务降级、限流、熔断等功能。虽然这些功能的存在能够降低后端服务宕机的风险,在后端服务宕机时也可以返回固定的内容,但是这些功能不能保证在后端服务宕机后继续提供稳定准确的输出,严重降低了用户体验。高可用性HA(HighAvailability)是指通过设计减少服务停止时间,从而达到提高系统和服务的可用性的效果。API网关是一个服务,是系统的唯一入口,它封装了系统内部架构,为客户端统一提供服务,在微服务架构中以微服务网关的身份存在,同时为服务提供高可用的解决方案。API网关提供负载均衡、限流、缓存、熔断等高可用解决方案,具体为:1)负载均衡可以将请求均衡的负载到后端各个机器上,也可以做到服务宕机后动态摘除;2)限流功能,在流量超过服务预设的承载能力,网关通过限流功能直接返回固定响应内容,不再去请求后端服务;3)缓存功能,网关会对请求的响应结果进行Cache,相同请求过来后直接从Cache中获取响应结果,Cache过期后再去后端服务请求响应内容重新缓存;4)熔断功能,请求后端服务异常达到熔断配置的阀值,则熔断进入开启状态。现有技术方案的缺点包括:1)负载均衡降低了后端服务的压力,但后端服务节点全部宕掉后网关无法继续提供可用服务;2)限流生效后所有请求每次返回相同内容,会减低用户的体验;3)缓存功能,缓存数据通过会有一定的有效期,若过期后,此时后端服务节点全部宕机,网关也将无法正常提供服务。
技术实现思路
为解决上述问题,本专利技术提出一种在API网关的熔断功能上增加二级缓存的方法及系统,解决后端服务节点全部宕机后,通过请求二级缓存的数据解决网关无法继续提供可用服务的问题,通过熔断和二级缓存保障服务高可用的同时,提高了用户的体验。本专利技术的技术方案为:一种基于熔断和二级缓存的API网关保障服务高可用方法,其步骤包括:1)API网关服务接收到调用方发出的服务请求时,从内存中获取API配置信息;然后根据API配置信息中的Cache开启标识确定是否访问Cache,如果开启则从Cache的一级缓存中获取响应结果,如果一级缓存中没有对应的响应结果,则将该服务请求发送给后端服务;Cache用于缓存服务请求的响应结果,分为一级缓存和二级缓存;2)后端服务根据收到的服务请求生成相应的响应结果并将其放入Cache的一级缓存和二级缓存;如果调用同一个API网关服务的返回异常结果次数达到熔断阀值,则进入该API网关服务的熔断流程,将该API网关服务进入熔断开启状态;其中,熔断流程为:若API网关服务收到服务请求时,则根据收到的服务请求直接从二级缓存中获取响应结果,如果二级缓存中没有对应的响应结果则返回熔断信息。进一步的,步骤2)中,当API网关服务进入熔断流程的时间达到设定的重置时间间隔后,该API网关服务进入半开启状态;该API网关服务进入半开启状态后,对收到的第一个服务请求直接发送给后端服务,如果该后端服务对该第一个服务请求响应成功,则将该API网关服务退出熔断流程,同时将响应放入一级缓存和二级缓存,否则重新将该API网关服务进入熔断开启状态。进一步的,Cache中的数据采用主从同步的方式进行存储;数据更新采用读写分离的方式,主节点存储写入和更新的数据,从节点实时从主节点获取最新变化的数据进行存储,读取Cache数据时读取从节点。进一步的,API配置信息数据存储采用单个API网关服务存储全量配置数据的方式,即各API网关服务的内存中均存储一份API配置信息。进一步的,设置多个API网关服务,多个API网关服务并行处理接收的所有服务请求。进一步的,还包括一API网关心跳监测服务和一API网关配置服务;API网关心跳监测服务,用于监测后端服务的状态,并将状态推送给API网关配置服务;API网关配置服务,用于管理API配置信息并推送到API网关服务,以及接收API网关心跳监测服务推送的状态信息,后端服务异常则将对应的服务器从配置信息中删除,后端服务恢复正常则在配置信息中加入对应的服务器。一种基于熔断和二级缓存的API网关保障服务系统,其特征在于,包括多个后端服务、若干API网关服务和二级缓存单元Cache;Cache用于缓存服务请求的响应结果,分为一级缓存和二级缓存;其中,API网关服务,用于接收到调用方发出的服务请求,从内存中获取API配置信息;以及根据API配置信息中的Cache开启标识确定是否访问Cache,如果开启则从Cache的一级缓存中获取响应结果,如果一级缓存中没有对应的响应结果,则将该服务请求发送给后端服务;后端服务,用于根据收到的服务请求生成相应的响应结果并将其放入Cache的一级缓存和二级缓存;如果调用同一个API网关服务的返回异常结果次数达到熔断阀值,则进入该API网关服务的熔断流程,将该API网关服务进入熔断开启状态;其中,熔断流程为:若API网关服务收到服务请求时,则根据收到的服务请求直接从二级缓存中获取响应结果,如果二级缓存中没有对应的响应结果则返回熔断信息。本专利技术具有以下优点和有益效果:通过本专利技术所使用的技术方法解决了缓存和服务同时宕机引起的服务支撑力度低的难题,极大提高了服务可用性,保障系统精准响应,优化了用户体验。附图说明图1是本专利技术的总体框架图。图2是本专利技术的主流程图。图3是本专利技术的熔断流程图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本专利技术做进一步说明。1)总体构成本专利技术技术架构图如图1所示:系统在调用方、API网关服务、API网关配置服务、API网关心跳监测服务和后端服务的基础上增加了Cache。API网关服务是网关对外提供访问的入口:所有的请求会首先到API网关服务,网关服务对所有请求并行处理,从内存中获取API配置信息,配置信息指定是否开启Cache,开启则请求Cache,不开启则请求后端服务。API网关配置服务:API网关配置服务管理API的配置信息,包括配置功能开关和配置生效后推送到API网关服务;接收API网关心跳监测服务推送的后端服务的服务器状态,服务器异常则将其从配置信息中删除,服务恢复正常则在配置信息中加入对应后端服务的机器信息。API网关心跳监测服务:本服务用来监测后端服务的状态,并将状态推送给API网关配置服务。Cache:缓存请求的响应结果,分为一级缓存和二级缓存。后端服务:本模块为真正的业务提供方。2)数据存储API配置信息数据存储采用单个网关服务存储全量配置数据的方式,即API的配置信息在网关服务A~C的内存中各存储一份,因API的配置信息数据量有限,可以全量存储,网关服务获取API配置数据直接从本机内存中获取,保证读取速度。数据的更新操作采用消息通知的方式,网关服务收到消息后更新本机内存。响应的结果数据存储在Cache中,Cache数据采用主从同步的方式,根节本文档来自技高网
...

【技术保护点】
1.一种基于熔断和二级缓存的API网关保障服务高可用方法,其步骤包括:1)API网关服务接收到调用方发出的服务请求时,从内存中获取API配置信息;然后根据API配置信息中的Cache开启标识确定是否访问Cache,如果开启则从Cache的一级缓存中获取响应结果,如果一级缓存中没有对应的响应结果,则将该服务请求发送给后端服务;Cache用于缓存服务请求的响应结果,分为一级缓存和二级缓存;2)后端服务根据收到的服务请求生成相应的响应结果并将其放入Cache的一级缓存和二级缓存;如果调用同一个API网关服务的返回异常结果次数达到熔断阀值,则进入该API网关服务的熔断流程,将该API网关服务进入熔断开启状态;其中,熔断流程为:若API网关服务收到服务请求时,则根据收到的服务请求直接从二级缓存中获取响应结果,如果二级缓存中没有对应的响应结果则返回熔断信息。

【技术特征摘要】
1.一种基于熔断和二级缓存的API网关保障服务高可用方法,其步骤包括:1)API网关服务接收到调用方发出的服务请求时,从内存中获取API配置信息;然后根据API配置信息中的Cache开启标识确定是否访问Cache,如果开启则从Cache的一级缓存中获取响应结果,如果一级缓存中没有对应的响应结果,则将该服务请求发送给后端服务;Cache用于缓存服务请求的响应结果,分为一级缓存和二级缓存;2)后端服务根据收到的服务请求生成相应的响应结果并将其放入Cache的一级缓存和二级缓存;如果调用同一个API网关服务的返回异常结果次数达到熔断阀值,则进入该API网关服务的熔断流程,将该API网关服务进入熔断开启状态;其中,熔断流程为:若API网关服务收到服务请求时,则根据收到的服务请求直接从二级缓存中获取响应结果,如果二级缓存中没有对应的响应结果则返回熔断信息。2.如权利要求1所述的方法,其特征在于,步骤2)中,当API网关服务进入熔断流程的时间达到设定的重置时间间隔后,该API网关服务进入半开启状态;该API网关服务进入半开启状态后,对收到的第一个服务请求直接发送给后端服务,如果该后端服务对该第一个服务请求响应成功,则将该API网关服务退出熔断流程,同时将响应放入一级缓存和二级缓存,否则重新将该API网关服务进入熔断开启状态。3.如权利要求2所述的方法,其特征在于,Cache中的数据采用主从同步的方式进行存储;数据更新采用读写分离的方式,主节点存储写入和更新的数据,从节点实时从主节点获取最新变化的数据进行存储,读取Cache数据时读取从节点。4.如权利要求1所述的方法,其特征在于,API配置信息数据存储采用单个API网关服务存储全量配置数据的方式,即各API网关服务的内存中均存储一份API配置信息。5.如权利要求1所述的方法,其特征在于,设置多个API网关服务,多个API网关服务并行处理接收的所有服务请求。6.如权利要求1所述的方法,其特征在于,还包括一API网关心跳监测服务和一API网关配置服务;API网关心跳监测服务,用于监测后端服务的状态,并将状态推送给API网关配置服务;API网关配置服务,用于管理API配置信息并推送到API网关服务,以及接收API网关心跳监测服务推...

【专利技术属性】
技术研发人员:宋振宇刘方明付玉霞李宁刘宝旭
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1