资讯中心

API是怎样管理的?(上)——赛合一API知识讲堂

新服务是未来发展的方向和趋势,它之于传统服务的优势之一就在于,服务的细分带来了更新、部署、管理的隔离性,让某些单独的服务得到创新,从而使用户体验不断提高升级,实现企业的数字化转型。新服务在一定程度上也可以理解为是微服务。

 

你肯定知道,现在想要进行水电煤缴费,根本不需要再跑到营业厅,只要通过电子商城就可以办理相关的业务,但你或许并不知道,其实这一切的实现都离不开API网关(API Gateway)。运营商通过API向第三方的服务平台开放了套餐服务,当中API网关就像一堵城墙一样通过流控、鉴权等机制保障相关的安全性,使得这样方便流畅的体验得以实现。实例就是小米商城和【赛合一数据】平台合作接入的水电煤缴费APIAPI网关保证了其稳定性和安全性,从而使之实现全国范围覆盖。

 

API网关的构架有时候也会带来一些问题,难管理就是其中之一。微服务给我们带来了很多好处,但也带来了诸多需要解决的问题,当服务变成一个个细小的API之后,如何管理这些API才是正确的呢?

 

一,什么是API网关


以下这张图,非常形象的解释了API网关和微服务的关系。做为听众,我们只想听到美妙动人的音乐旋律,完全不会在乎音乐是怎么演奏的。而指挥家则根据曲谱负责指挥好每一个演奏者,使每一个演奏者之间配合默契,共同完成这场音乐演出。在微服务的世界里,API网关就如同一位指挥家,“指挥”着不同的“演奏人”(微服务)

指挥.png

 

UI方面,我们可能需要在一个页面上显示来自不同微服务的数据,此时就会需要一个统一的入口来进行API的调用。API网关就在此场景下充当了多个服务的大门,系统的统一入口。

 

二,为什么需要API网关


在微服务的架构模式下,API网关是微服务架构中一个非常通用的模式,利用API 网关可以解决调用方如何调用独立的微服务这个问题。总的来说,API网关具有以下几个比较重要的优点:

 

1.采用API网关可以与微服务注册中心连接,实现微服务无感知动态扩容。

2.API网关对于无法访问的服务,可以做到自动熔断,无需人工参与。

3.API网关可以方便的实现蓝绿部署,金丝雀发布或A/B发布。

4.API网关做为系统统一入口,我们可以将各个微服务公共功能放在API 网关中实现,以尽可能减少各服务的职责。

5.帮助我们实现客户端的负载均衡策略。

 

 

三,API网关中重要的功能


1. 负载均衡——在实际的部署应用中,当应用系统面临大量访问,负载过高时,通常我们会增加服务数量来进行横向扩展,使用集群来提高系统的处理能力。此时多个服务通过某种负载算法分摊了系统的压力,我们将这种多节点分摊压力的行为称为负载均衡。API 网关可以帮助我们轻松的实现负载均衡。

2. 服务熔断——一些服务很有可能因为某些原因发生故障,如果此时不采取一些手段,会导致整个系统崩溃。服务熔断是解决问题的主要方式。API网关可以帮助我们实现这些功能,对于服务的调用次数的限制,当某服务达到上限时,API网关会自动停止向上游服务发送请求,并像客户端返回错误提示信息或一个统一的响应,进行服务降级。对于需要临时发生故障的服务,API网关自动可以打开对应服务的断路器,进行服务熔断,防止整个系统崩溃。

3. 灰度发布——服务发布上线过程中,我们不可能将新版本全部部署在生产环节中,因为新版本并没有接受真实用户、真实数据、真实环境的考验,此时我们需要进行灰度发布。灰度发布可以保证整体系统的稳定,API网关可以帮助我们轻松的完成灰度发布,只需要在API 网关中配置我们需要的规则,API网关会自动为我们完成实际的请求分流。