system-design-prime
system-design-prime 可用性模式 有两种支持高可用性的模式: 故障切换(fail-over)和复制(replication)。 故障切换 工作到备用切换(Active-passive) 关于工作到备用的故障切换流程是,工作服务器发送周期信号给待机中的备用服务器。如果周期信号中断,备用服务器切换成工作服务器的 IP 地址并恢复服务。 宕机时间取决于备用服务器处于“热”待机状态还是需要从“冷”待机状态进行启动。只有工作服务器处理流量。 工作到备用的故障切换也被称为主从切换。 双工作切换(Active-active) 在双工作切换中,双方都在管控流量,在它们之间分散负载。 如果是外网服务器,DNS 将需要对两方都了解。如果是内网服务器,应用程序逻辑将需要对两方都了解。 双工作切换也可以称为主主切换。 缺陷:故障切换 故障切换需要添加额外硬件并增加复杂性。 如果新写入数据在能被复制到备用系统之前,工作系统出现了故障,则有可能会丢失数据。 复制 主─从复制和主─主复制 这个主题进一步探讨了数据库部分: 主─从复制 主─主复制 CDN 内容分发网络 内容分发网络 CDN(英语:Content Delivery Network或Content Distribution Network)是一个全球性的代理服务器分布式网络,它从靠近用户的位置提供内容。通常,HTML/CSS/JS,图片和视频等静态内容由 CDN 提供,虽然亚马逊 CloudFront 等也支持动态内容。CDN 的 DNS 解析会告知客户端连接哪台服务器。 CDN 的分类 Pull CDN 当用户第一次访问CDN的时候,CDN上是没有资源的,这时候CDN会去向服务器拉取资源。之后的访问就直接在CDN服务器中返回就可以。 push CDN 服务器可以在用户访问资源之前,把资源push给CDN服务器。 如何选择哪种CDN? 关于使用哪种 CDN 类型的决定在很大程度上取决于流量和下载量。从长远来看,托管视频和播客(又名大量下载)的旅游博客会发现推送 CDN 更便宜、更高效,因为在您主动将其推送到 CDN 之前,CDN 不会重新下载内容。拉式 CDN 可以通过在 CDN 服务器上保留最受欢迎的内容来帮助高流量小下载的网站。内容的后续更新(或“拉取”)频率不足以使成本超过推送 CDN 的成本。 LoadBlancer 负载均衡器 负载均衡器将传入的请求分发到应用服务器和数据库等计算资源。无论哪种情况,负载均衡器将从计算资源来的响应返回给恰当的客户端。负载均衡器的效用在于: 防止请求进入不好的服务器 防止资源过载 帮助消除单一的故障点 通常会设置采用工作─备用 或 双工作 模式的多个负载均衡器,以免发生故障。...