谈API网关

简介: API网关的意义和常用选择

API 网关是位于客户端与后端服务集之间的管理工具/平台。简单来说大致相当于一个反向代理,可以调用并返回结果。


价值

API网关并不是必须的,如果处于起步阶段的项目,单体应用还是最直接的,一层

Controller就可以解决问题,这个阶段引入过多的复杂性其实没有太大必要。


但是对于大型应用,特别是微服务化的场景下,API网关可以带来很多价值。


聚合和解耦

当用户需要同时访问多个接口的时候,网关可以聚合结果,节约流量。

网关由于路由规则等比较灵活,可以比较容易的切换网关后的路由,对于一些升级、迁移场景,可以降低影响。特别是业务迭代早期,服务之前的边界和模型不稳定,迭代是极为频繁的。


非业务功能

在实际的应用场景中,有很多功能是必要的,但是它不是业务功能,比如限流、降级、熔断等。网关可以用较低代价去实现通用能力,并提供一些通用的模块,比如认证接入等。


管理

网关统一了所有对外暴露的接口,也就有条件提供一个统一的管理工具,这样可以给API更统一的管理模型,统一生命周期。


评价

评价一款API网关主要看性能和功能,另外个人还觉得和已有生态的结合也是一个考虑点。如果是自建/自部署,还要考虑开源社区的活跃程度和二次开发的复杂度。


性能测试网上有很多,一般都是使用几台压测机进行施压,观察平均响应时间、吞吐量和响应时间分布。这样测试一般后端都是空接口(没有业务逻辑),无法模拟真实情况下的连接波动等的影响。


功能的话,大部分流行的API网关功能都是完备的,只要是活跃的,常见功能都有,这种情况下可以重点关注下监控系统的集成。


选型


API网关由于通用性比较强,相对来说选型也比较多。


常见的开源选择有Kong、Ambassador、Traefik、Tyk等。


部分开源网关也有商业版/商业支持,如果目前已经上云了,那其实完全可以使用云厂商的网关,差不多都是按流量+次数收费,也有买断式的专享实例,这种按照时长+流量收费。


对于云厂商来说,API网关属于最基本的功能了,都有提供,比如阿里云的API网关,腾讯的API网关等。云厂商的API网关和自身生态体系结合比较紧密,后端的选择很多,比如阿里云支持ECS、SLB、函数计算、Dataworks、DMS等,也有额外的插件可选,比如后端签名插件、JWT认证插件、后端路由等。


云厂商提供的API网关唯一问题就是厂商锁定比较重,和存储等还不太一样,相互间切换不容易。

相关文章
|
5月前
|
缓存 JavaScript Java
使用 API 网关
使用 API 网关
61 0
|
11月前
|
XML JSON 缓存
vvic API 接入说明
vvic API 接入说明
|
11月前
|
存储 前端开发 Java
前后端API的接入
对于开发一个 Web 项目来说,无论是电商还是其他品类的项目,注册与登录模块都是必不可少的
|
缓存 监控 算法
API网关:开源Apinto网关快速入门
Apinto网关基于GO语言模块化开发,5分钟极速部署,配置简单、易于维护,支持集群与动态扩容,开箱即用。
391 0
API网关:开源Apinto网关快速入门
|
弹性计算 移动开发 API
API 网关(API Gateway)
API 网关(API Gateway)提供高性能、高可用的 API 托管服务
588 0
|
缓存 运维 监控
API 网关要做很多工作
通常情况下, API 网关要做很多工作
244 0
|
存储 监控 应用服务中间件
|
运维 监控 负载均衡
公司为什么都有API网关?聊聊API网关的作用
1、Open API 企业需要将自身数据、能力等作为开发平台向外开放,通常会以rest的方式向外提供。最好的例子就是淘宝开放平台、腾讯公司的QQ开发平台、微信开放平台。 Open API开放平台必然涉及到客户
公司为什么都有API网关?聊聊API网关的作用
|
设计模式 缓存 负载均衡
|
容器 Docker Shell
SIA-GateWay之API网关安装部署指南
SIA-GATEWAY是基于SpringCloud微服务生态体系下开发的一个分布式微服务网关系统。具备简单易用、可视化、高可扩展、高可用性等特征,提供云原生、完整及成熟的接入服务解决方案。本文介绍API网关的安装部署。