应用编程接口(Application Programming Interface,简称:API),就是软件系统不同组成部分衔接的约定。
随着 API 的整体趋势发展, 架构也随之变化:从最原始的“传输协议通讯” -> “简单的接口集成” -> “消息中间件” -> “标准 REST”, API 的发展更趋向于简洁, 集成,规范化。
随着微服务的流行,采用微服务后,所有的服务都变成了一个个细小的API,与之带来了API管理的一些问题:
在微服务的应用程序中,客户端和微服务之间的交互,也存在着挑战:
API 网关作为微服务整体架构的重要组件,针对性地解决了如何合理地治理服务API的问题。
抽象了微服务中都需要的公共功能,同时提供了客户端负载均衡,服务自动熔断,灰度发布,统一认证,限流流控,日志统计等丰富的功能。
更多的功能
API Gateway做为系统统一入口,实现了对各个微服务间的整合,同时又做到了对客户端友好,屏蔽系统的复杂性和差异性,让 API请求更安全、更高效的得到处理。
API 的全生命周期管理:除了反向代理、负载均衡、限流限速的插件外,还包括了 API 的设计、文档以及测试等,也就是说,从项目设计到测试上线,所有的东西都在整个 API 网关的功能范畴内。
闭源的商业API网关产品,功能都很完善,覆盖了API的设计、多语言SDK、文档、测试和发布等全生命周期管理,并且提供SaaS服务,有些还与公有云做了集成,使用起来非常方便。
但同时也存在“平台锁定”和无法二次开发的问题。
因为一旦使用了“闭源”的方案,就很难平滑和低成本地迁移到其他平台,并且只能依靠厂商来定制开发需求。
因此一般的选型原则:云原生友好的、高性能的、开源的 API 网关。
原文:https://www.cnblogs.com/anliven/p/13688410.html