做者:Chris Schwartz前端
翻译:疯狂的技术宅web
原文:blog.leaseweb.com/2019/07/08/…前端工程化
未经许可严谨转载缓存
咱们生活在一个超链接的世界,但愿网站可以在任什么时候候都100% 的正常运行。咱们不能接受任什么时候间长度的 Web 停机,由于它可能会形成灾难性的连锁反应。安全
中断可能会致使损失收入、增长与安全和欺诈相关的风险、中止业务运营以及可怕的数据没法访问。在这样的灾难中,对你的品牌和客户满意度的损害多是没法弥补的,你最终会看到宝贵的客户跑到最接近的竞争对手那里。让咱们面对现实吧,没有人愿意经历这一切!服务器
单点故障是任意基础设施的崩溃,设计并运行具备高可用性的系统是避免停机的关键。网络
高可用性(HA)是系统的一个特征,其旨在确保服务达到一致的性能水平,一般是高于正常的运行时间。架构
设计 HA 基础架构时首先想到的是增长冗余。冗余是系统关键组件的重复,用来提升可靠性并防止功能丧失。工具
这些是在设计 HA 基础架构时须要考虑的组件:性能
假设咱们有一个域(网站)在一台服务器上运行,域的 DNS 指向该服务器的 IP 地址。若是此服务器出现故障,则该网站就会处于脱机状态。在这种状况下,服务器是单点故障。
咱们如何实施高可用性基础架构来确保网站保持在线状态呢?
继续参考前面给出的例子,咱们能够在上面的基础架构中添加一个相同的服务器,最好是在另外一个机架中,将服务器设置为主从模式,这样就会在硬件层上有所冗余。
经过添加这个额外的服务器,咱们拥有了 2 个托管网站的服务器,但这并不意味着当活动服务器关闭时,流量将会自动流向从服务器。这是由于域的 DNS 指向了活动服务器的 IP 地址。必须对 DNS 进行更改才能将域名指向从服务器,这可能须要至关长的时间才能在 Internet 上同步。有一个解决方案,咱们建议使用浮动 IP 。
浮动 IP 是可路由的 IP 地址,能够将流量引到另外一个 IP 地址。你能够使用浮动 IP 地址,而不是用服务器的 IP 地址做为域的 A 记录。浮动 IP 地址可以提供在须要时轻松重定向的 IP 地址,这样能够消除修改 DNS 的过程当中固有的传播和缓存问题。下面的图表显示了浮动 IP 如何自动适应 HA 系统。
在上面的示例中,有两个相同的服务器处于主从模式,其中托管了相同的网站。网站的 DNS 指向浮动 IP。浮动 IP 将流量定向到活动服务器。若是活动服务器出现故障,经过对浮动 IP 地址的更改会将流量定向到从服务器的 IP,这可确保使流量流向从服务器。
最后一件重要的事,为了创建平稳的故障转移,须要在两台服务器上进行数据同步。能够在两个服务器之间创建专用网络来实现数据同步。