API 网关
开放平台类网关是企业内部系统对外的统一入口,承担了很多业务,比如内外部数据交互、数据安全、监控统计等功能。
为什么需要网关
移动互联网时代,我们的系统不仅会通过 Web 端提供服务,还有 App 端、小程序端等,各个调用端单独去发起连接,会出现很多问题,比如不容易监控调用流量,出现问题不好确定来源,服务之间调用关系混乱等。
通过引入 API 网关这一角色,可以高效地实现微服务集群的输出,节约后端服务开发成本,减少上线风险,并为服务熔断、灰度发布、线上测试等提供解决方案。
API 网关自身也是一个服务,网关封装了系统内部架构,为每个客户端提供了一个定制的 API。从面向对象设计的角度看,它与外观模式(Facade Pattern)类似
除了封装内部系统之外,API 网关作为一个系统访问的切面,还可以添加身份验证、监控、负载均衡、限流、降级与应用检测等功能。
API 网关,可以带来以下的收益
API 服务网关对外提供统一的入口供客户端访问,隐藏系统架构实现的细节,让微服务使用更为友好;
借助 API 服务网关可统一做切面任务,避免每个微服务自己开发,提升效率,使系统更加标准化;
通过 API 服务网关,可以将异构系统进行统一整合,比如外部 API 使用 HTTP 接口,内部微服务可以使用一些性能更高的通信协议,然后在网关中进行转换,提供统一的外部 REST 接口;
通过微服务的统一访问控制,可以更好地实现鉴权,提高系统的安全性。
在系统设计中引入网关,也会导致系统复杂性增加,带来下面的问题:
在发布和部署阶段需要管理网关的配置,保证外部 API 访问的是正常的服务实例;
API 服务网关需要实现一个高可用伸缩性强的服务,避免单点失效,否则会成为系统的瓶颈;
引入API 服务网关额外添加了一个需要维护的系统,增加了开发和运维的工作量,提高了系统复杂程度。
应用API 网关需要权衡带来的收益和因此增加的复杂性,这也是我们前面说的,分布式系统是复杂性和收益的平衡,需要针对具体业务进行合理的架构设计。
微服务网关选型
Spring Cloud Gateway
Spring Cloud Gateway 是 Spring Cloud 体系的第二代网关组件,基于 Spring 5.0 的新特性 WebFlux 进行开发,底层网络通信框架使用的是 Netty。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具