最後更新:
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分布的產品