本周系统设计复习:
- Session vs. JWT:你可能不知道的区别!
- 数据和通信流的 9 大架构模式
- API 网关 101
- 为什么内容分发网络(CDN)如此流行?
- 全栈开发路线图
API 网关核心功能
API 网关是一个服务器,充当 API 前端,接收 API 请求、执行节流和安全策略、将请求传递到后端服务,然后将适当结果返回给客户端。
它本质上是客户端和服务器之间的中间人,管理和优化 API 流量。
API 网关的关键功能
请求路由(Request Routing):将传入的 API 请求定向到适当的后端服务。
负载均衡(Load Balancing):在多个服务器之间分发请求,确保没有单个服务器不堪重负。
安全(Security):实施安全措施,如身份验证、授权和数据加密。
速率限制和节流(Rate Limiting and Throttling):控制客户端在一定时间内可以发出的请求数量。
API 组合(API Composition):将多个后端 API 请求组合成单个前端请求以优化性能。
缓存(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 流行的几个因素
CDN 的影响:CDN 提高性能、增加可用性并增强带宽成本。使用 CDN,延迟显著减少。
CDN 请求流程:DNS 解析后,用户的设备将内容请求发送到 CDN 边缘服务器。边缘服务器检查其本地缓存中的内容。如果找到,边缘服务器将内容提供给用户。如果未找到,边缘服务器将请求转发到源服务器。从源服务器接收内容后,边缘服务器在其缓存中存储副本并交付给用户。
CDN 架构:CDN 架构中有多个组件:
- 源服务器:这是内容的主要来源
- 边缘服务器:它们缓存并向用户提供内容,分布在全球
- DNS:DNS 将域名解析到最近边缘服务器的 IP 地址
- 控制平面:负责配置和管理边缘服务器
CDN 请求路由:
- GSLB:基于地理接近性、服务器负载、网络条件等因素将用户请求路由到服务器
- Anycast DNS:允许多个服务器共享相同的 IP 地址。它帮助将传入流量路由到最近的数据中心
- 互联网交换点:CDN 提供商在主要 IXP 建立存在,允许他们直接与 ISP 和其他网络交换流量
最佳实践:一些优化 CDN 性能的关键最佳实践与安全方面、缓存优化和内容优化相关。
全栈开发路线图
全栈开发者需要在不同领域的软件开发的广泛技术和工具中熟练。以下是全栈开发者所需技术栈的全面观察。
前端开发:前端开发涉及创建 Web 应用的用户界面和用户体验。
后端开发:后端开发涉及管理服务器端逻辑、数据库和各种服务的集成。
数据库开发:数据库开发涉及管理数据存储、检索和操作。
移动开发:移动开发涉及为移动设备创建应用。
云计算:云计算涉及在云平台上部署和管理应用。
UI/UX 设计:UI/UX 设计涉及设计应用的用户界面和体验。
基础设施和 DevOps:基础设施和 DevOps 涉及管理基础设施、部署和持续集成/持续交付(CI/CD)的应用。
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP122: API Gateway 101。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。