谈API网关

本文涉及的产品
云原生 API 网关,700元额度,多规格可选
简介: API网关的意义和常用选择

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


价值

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

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


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


聚合和解耦

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

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


非业务功能

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


管理

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


评价

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


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


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


选型


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


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


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


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


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

相关文章
|
7月前
|
监控 应用服务中间件 API
API 网关的功能用途及实现方式
API 网关的功能用途及实现方式
|
4月前
|
缓存 监控 安全
API网关的用途
【8月更文挑战第23天】
145 0
|
7月前
|
运维 负载均衡 API
API服务网关的作用
【5月更文挑战第23天】API服务网关是微服务架构中的统一入口,负责请求路由、组合及协议转换,隐藏内部架构细节。
|
7月前
|
监控 安全 测试技术
🆚内部 API vs 公共 API:全面比较及管理策略
内部和外部API在用途和受众上存在差异。内部API专注于提升公司内部效率,不对外公开,常用于集成内部系统和数据。公共API则面向公众,用于创建应用、增加收入和品牌知名度,它们需要安全管理,支持多种用例,并遵守法规。公共API带来收入、社区建设和创新机会,但涉及安全风险和依赖第三方。内部API安全性强,控制力高,但曝光度有限,维护资源受限。有效的API管理对于两者都至关重要,涉及设计、记录、测试、发布和保护。内部API和公共API在身份验证、文档、货币化和监控方面有不同管理策略。
|
7月前
|
缓存 JavaScript Java
使用 API 网关
使用 API 网关
117 0
|
消息中间件 设计模式 缓存
API网关到底是什么?和BFF有什么关系?为什么前后端都需要关注?
API网关到底是什么?和BFF有什么关系?为什么前后端都需要关注?
|
自然语言处理 Dubbo 应用服务中间件
Higress和dubbo-go-pixiu都与网关和服务调用有关
Higress和dubbo-go-pixiu都与网关和服务调用有关
128 1
|
7月前
|
缓存
ARM学习扫盲篇(一):CPSR&SPSR、Lcache&Dcache、w/parity&w/ECC
ARM学习扫盲篇(一):CPSR&SPSR、Lcache&Dcache、w/parity&w/ECC
137 0
|
JSON API 开发工具
API参考—实例管理—CreateDBInstance
API参考—实例管理—CreateDBInstance
166 0