本周系统设计复习:

  • Session vs. JWT:你可能不知道的区别!
  • 数据和通信流的 9 大架构模式
  • API 网关 101
  • 为什么内容分发网络(CDN)如此流行?
  • 全栈开发路线图

API 网关核心功能

API 网关是一个服务器,充当 API 前端,接收 API 请求、执行节流和安全策略、将请求传递到后端服务,然后将适当结果返回给客户端。

它本质上是客户端和服务器之间的中间人,管理和优化 API 流量。

API 网关的关键功能

  1. 请求路由(Request Routing):将传入的 API 请求定向到适当的后端服务。

  2. 负载均衡(Load Balancing):在多个服务器之间分发请求,确保没有单个服务器不堪重负。

  3. 安全(Security):实施安全措施,如身份验证、授权和数据加密。

  4. 速率限制和节流(Rate Limiting and Throttling):控制客户端在一定时间内可以发出的请求数量。

  5. API 组合(API Composition):将多个后端 API 请求组合成单个前端请求以优化性能。

  6. 缓存(Caching):临时存储响应以减少重复处理的需求。

9 种架构模式

1. 点对点(Peer-to-Peer)

点对点模式涉及两个组件之间的直接通信,无需中央协调器。

2. API 网关(API Gateway)

API 网关充当所有客户端请求到应用后端服务的单一入口点。

3. 发布 - 订阅(Pub-Sub)

发布 - 订阅模式通过消息代理将消息生产者(发布者)与消息消费者(订阅者)解耦。

4. 请求 - 响应(Request-Response)

这是最基本的集成模式之一,客户端发送请求到服务器并等待响应。

5. 事件溯源(Event Sourcing)

事件溯源涉及将应用的状态变化存储为事件序列。

6. ETL

ETL 是一种数据集成模式,用于从多个来源收集数据,将其转换为结构化格式,并加载到目标数据库中。

7. 批处理(Batching)

批处理涉及在一段时间内累积数据或直到满足特定阈值,然后作为单组处理。

8. 流处理(Streaming Processing)

流处理允许实时连续摄取、处理和分析数据流。

9. 编排(Orchestration)

编排涉及中央协调器(编排器)管理分布式组件或服务之间的交互以实现工作流或业务流程。

CDN 为什么流行?

CDN 市场预计到 2028 年将达到近 380 亿美元。Akamai、Cloudflare 和 Amazon CloudFront 等公司正在该领域大力投资。

CDN 流行的几个因素

  1. CDN 的影响:CDN 提高性能、增加可用性并增强带宽成本。使用 CDN,延迟显著减少。

  2. CDN 请求流程:DNS 解析后,用户的设备将内容请求发送到 CDN 边缘服务器。边缘服务器检查其本地缓存中的内容。如果找到,边缘服务器将内容提供给用户。如果未找到,边缘服务器将请求转发到源服务器。从源服务器接收内容后,边缘服务器在其缓存中存储副本并交付给用户。

  3. CDN 架构:CDN 架构中有多个组件:

    • 源服务器:这是内容的主要来源
    • 边缘服务器:它们缓存并向用户提供内容,分布在全球
    • DNS:DNS 将域名解析到最近边缘服务器的 IP 地址
    • 控制平面:负责配置和管理边缘服务器
  4. CDN 请求路由

    • GSLB:基于地理接近性、服务器负载、网络条件等因素将用户请求路由到服务器
    • Anycast DNS:允许多个服务器共享相同的 IP 地址。它帮助将传入流量路由到最近的数据中心
    • 互联网交换点:CDN 提供商在主要 IXP 建立存在,允许他们直接与 ISP 和其他网络交换流量
  5. 最佳实践:一些优化 CDN 性能的关键最佳实践与安全方面、缓存优化和内容优化相关。

全栈开发路线图

全栈开发者需要在不同领域的软件开发的广泛技术和工具中熟练。以下是全栈开发者所需技术栈的全面观察。

  1. 前端开发:前端开发涉及创建 Web 应用的用户界面和用户体验。

  2. 后端开发:后端开发涉及管理服务器端逻辑、数据库和各种服务的集成。

  3. 数据库开发:数据库开发涉及管理数据存储、检索和操作。

  4. 移动开发:移动开发涉及为移动设备创建应用。

  5. 云计算:云计算涉及在云平台上部署和管理应用。

  6. UI/UX 设计:UI/UX 设计涉及设计应用的用户界面和体验。

  7. 基础设施和 DevOps:基础设施和 DevOps 涉及管理基础设施、部署和持续集成/持续交付(CI/CD)的应用。

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP122: API Gateway 101

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。