Please enable JavaScript.
Coggle requires JavaScript to display documents.
如何构建可伸缩的Web应用? (构建可伸缩的应用 (API server (不要存储任何的用户数据,需要无状态化…
如何构建可伸缩的Web应用?
为什么要构建可伸缩的Web应用?
依業務需求自動擴展承受負載,提供系統可用性
可伸缩架构的原则
关注点分离
每个类型的任务都应该有一个独立的服务器
避免部分功能負載過重影響整個應用程式
能够在专用服务器之间分配不同类型的任务
水平扩展的基础
水平扩展
多台服务器之间分配负载
负载均衡器
控制着所需的服务器数量,保证系统的平滑处理
当请求数量降低的时候,他会停用不需要的服务器
发现服务器已经满负荷,并且请求的数量在增加,那么他就会激活其他的服务器,重新分配请求负载
做服务器的健康检查
多种分配请求的算法,例如轮询、随机、延迟最小、流量最小等等
可以考虑诸如地理位置(用户请求定向到最近的服务器)、每个服务器的工作能力等因素
不需要缩放整个应用
构建可伸缩的应用
API server
处理主要功能相关的请求
数量随着用户量的增加而增加
不要存储任何的用户数据,需要无状态化
负载均衡器随时可以终止或暂停它们中的每一个
静态存储服务器
与 CDN 配合使用
防止了静态存储服务器过载
MQ/Worker
Worker 在独立服务器上运行,可以根据负载强度进行扩展
Message Queue 就像 API服务器和 Worker 之间的任务管理器