API网关及Gateway 总结
1、API 网关
在微服务架构中,UI 通常连接多个微服务。如果微服务是细粒度的(FaaS) ,那么客户端可能需要连接非常多的微服务,这将变得繁杂和具有挑战性。此外,这些服务包括它们的 API 还将不断进化。大型企业还希望能有其他横切关注点(SSL 终止、身份验证、授权、节流、日志记录等)。
一个解决这些问题的可行方法是使用 API 网关。API 网关位于客户端 APP 和后端微服务之间充当立面,它可以是反向代理,将客户端请求路由到适当的后端微服务。它还支持将客户端请求扇出到多个微服务,然后将响应聚合后返回给客户端。它还支持必要的横切关注点。
优点
◾在前端和后端服务之间提供松耦合。
◾减少客户端和微服务之间的调用次数。
◾通过 SSL 终端、身份验证和授权实现高安全性。
◾集中管理的横切关注点,例如,日志记录和监视、节流、负载平衡。
缺点
◾可能导致微服务架构中的单点故障。
◾额外的网络调用带来的延迟增加。
◾如果不进行扩展,它们很容易成为整个企业应用的瓶颈。
◾额外的维护和开发费用。
何时使用 API 网关
◾在复杂的微服务架构中,它几乎是必须的。
◾在大型企业中,API 网关是中心化安全性和横切关注点的必要工具。
何时不宜使用 API 网关
◾在安全和集中管理不是最优先要素的私人项目或小公司中。
◾如果微服务的数量相当少。
SpringCloud Gateway 使用的 Webflux 中的 reactor-netty 响应式编程组件,底层使用了 Netty 通讯框架
Gateway 用途简要用这个图可以概况
可完成的功能:
- Route(路由)
- Predicate(断言)
- Filter(过滤器)
① 网关鉴权
② 黑名单过滤器
③ 获取body请求数据(解决流不能重复读取问题)
④ 跨站脚本过滤器
⑤ 验证码过滤器
API网关设计流程图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)