最后更新:
Click to expand / collapse
当API成为产品基础并开始每秒处理数万个请求时,确保其水平扩展至关重要。这意味着添加新的实例而不停止服务,并使用平衡器在它们之间分配负载。
我们设计和实施可扩展的API体系结构,能够灵活增长并承受任何峰值负载。
Horizontal scaling如何工作
| 构成部分 | 做什么 |
|---|---|
| Load balancer | 在API服务器之间分配传入流量(HAProxy, Nginx, AWS ELB) |
| API实例 | 并行处理请求的API应用程序的独立副本 |
| 共享数据存储 | 可供所有实例使用的集中式DB或缓存 |
| Health-check и auto-recovery | 控制实例可用性和自动恢复 |
为什么需要它
在查询急剧增长时具有弹性
容错性-单节点故障不会影响API的运行
支持在不更改应用程序逻辑的情况下缩放"vshir"
能够分阶段推出更新(滚动更新)
通过动态扩展优化成本
我们用什么
Load balancers: HAProxy, Nginx, AWS ELB, GCP Load Balancer
管弦乐队: Docker Swarm,Kubernetes,ECS
Кеш и shared state: Redis, Memcached, S3
监视: Prometheus,Grafana,Datadog
CI/CD: 自动交付新的负载实例
关键的地方
金融和银行API
Realtime游戏和流媒体服务
销售和峰值负载时的电子商务
具有全球覆盖范围和GEO分布的产品