知识卡片

API网关解耦客户端与内部演化

专业/工作 · 524.e

内容

分布式系统里,API 网关作为系统唯一入口,把”客户端看到的公开 API”和”内部服务实际怎么拆分、怎么变化”这两件事彻底分开——只要网关对外暴露的契约不变,内部服务可以随便拆分、合并、重构,客户端完全无感。这个模式在几个场景里特别有用:从单体往微服务迁移时,网关可以把还没拆完的单体包装起来,让迁移过程对客户端透明(monolith strangler);面对手机端、网页端、桌面端等不同客户端时,网关能按各自需求提供裁剪过的 API(backend-for-frontend);有时网关还能代替客户端去几个内部服务里查数据再拼起来返回(API composition),客户端不用自己发多次请求做拼接。发散:网关本质是给系统的对外契约加了一层间接层,这条边界一旦划清楚,”内部怎么变”和”外部看到什么”就是两个可以独立演化的问题——这正是[[仓储抽象隔离领域与持久化]]和[[固定服务地址解决云环境的DNS失效]]背后同一种”用稳定接口包住易变实现”的思路,在系统对外边界这个更大尺度上的复现。

参考来源

《Cloud Native Spring in Action》第9章《API gateway and circuit breakers》