疯狂的技术宅

以前出于工作目的,编写和翻译了大量的技术文章,以前端为主,删掉了过时的、毫无营养的内容,留下的都是精华。


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于本站

  • 回到主站

  • 搜索

如何创建高可用性系统

时间: 2019-08-01 分类: 架构与部署   字数: 1281 字 阅读: 3分钟
标签: #高可用性# #HA# #high availability#
  • 本文译自:https://blog.leaseweb.com/2019/07/08/create-high-availability-systems/
  • 译者:疯狂的技术宅

我们生活在一个超连接的世界,希望网站能够在任何时候都100% 的正常运行。我们不能接受任何时间长度的 Web 停机,因为它可能会造成灾难性的连锁反应。

中断可能会导致损失收入、增加与安全和欺诈相关的风险、停止业务运营以及可怕的数据无法访问。在这样的灾难中,对你的品牌和客户满意度的损害可能是无法弥补的,你最终会看到宝贵的客户跑到最接近的竞争对手那里。让我们面对现实吧,没有人愿意经历这一切!

单点故障是任意基础设施的崩溃,设计并运行具有高可用性的系统是避免停机的关键。

什么是高可用性(high availability)?

高可用性(HA)是系统的一个特征,其旨在确保服务达到一致的性能水平,通常是高于正常的运行时间。

设计 HA 基础架构时首先想到的是增加冗余。冗余是系统关键组件的重复,用来提高可靠性并防止功能丧失。

这些是在设计 HA 基础架构时需要考虑的组件:

  • **硬件:高可用性服务器应能够适应电源中断和硬件故障,包括硬盘和网络接口。**服务器应至少位于数据中心内的不同机架或机房中。
  • 软件:必须准备整个软件栈,包括操作系统和应用程序本身,以应对可能需要重新启动系统的意外故障。
  • **数据:**有很多因素会导致数据丢失和不一致,并不限于硬盘故障。高可用性系统必须在发生故障时考虑数据安全。
  • **网络:**高可用性系统的另一个可能的故障点是计划外的网络中断。为可能的故障制定冗余网络策略非常重要。

基本 HA 基础架构是什么样的?

假设我们有一个域(网站)在一台服务器上运行,域的 DNS 指向该服务器的 IP 地址。如果此服务器出现故障,则该网站就会处于脱机状态。在这种情况下,服务器是单点故障。

基本高可用性基础设施

我们如何实施高可用性基础架构来确保网站保持在线状态呢?

继续参考前面给出的例子,我们可以在上面的基础架构中添加一个相同的服务器,最好是在另一个机架中,将服务器设置为主从模式,这样就会在硬件层上有所冗余。

通过添加这个额外的服务器,我们拥有了 2 个托管网站的服务器,但这并不意味着当活动服务器关闭时,流量将会自动流向从服务器。这是因为域的 DNS 指向了活动服务器的 IP 地址。必须对 DNS 进行更改才能将域名指向从服务器,这可能需要相当长的时间才能在 Internet 上同步。有一个解决方案,我们建议使用浮动 IP 。

什么是浮动IP?

浮动 IP 是可路由的 IP 地址,可以将流量引到另一个 IP 地址。你可以使用浮动 IP 地址,而不是用服务器的 IP 地址作为域的 A 记录。浮动 IP 地址能够提供在需要时轻松重定向的 IP 地址,这样可以消除修改 DNS 的过程中固有的传播和缓存问题。下面的图表显示了浮动 IP 如何自动适应 HA 系统。

高可用性系统1中的浮动IP(1)

高可用性系统1中的浮动IP(2)

在上面的示例中,有两个相同的服务器处于主从模式,其中托管了相同的网站。网站的 DNS 指向浮动 IP。浮动 IP 将流量定向到活动服务器。如果活动服务器出现故障,通过对浮动 IP 地址的更改会将流量定向到从服务器的 IP,这可确保使流量流向从服务器。

最后一件重要的事,为了建立平稳的故障转移,需要在两台服务器上进行数据同步。可以在两个服务器之间建立专用网络来实现数据同步。

设计和实现高可用性系统可能看起来很复杂。但它是现代系统的一个基本特征,企业、员工和客户都希望服务不被中断,并能保证 100% 的正常运行时间。

标签: #高可用性# #HA# #high availability#

标题:如何创建高可用性系统

链接:https://fe-tech.viewnode.com/post/201908/01/

作者:疯狂的技术宅

声明: 本博客文章除特别声明外,均采用 CC BY-NC-ND 4.0 国际许可协议( 知识共享署名-非商业性使用-禁止演绎 4.0),转载请注明出处!

超越 Cookie:当今的客户端数据存储
什么是Deno,它与Node.js有什么不同?
  • 文章目录
  • 站点概览
疯狂的技术宅

疯狂的技术宅

退休程序员,硬件发烧友,人工智能爱好者。写写代码喝喝茶,晒晒太阳带带娃。

457 日志
8 分类
583 标签
GitHub
友情链接
  • viewnode
  • mofish
标签云
  • Javascript 172
  • Node.Js 62
  • Vue 36
  • Typescript 28
  • 实战项目 28
  • 面试 21
  • React 20
  • Css 17
  • 面试题 16
  • 教程 13
  • Promise 12
  • Chrome 9
  • Debug 9
  • 调试 9
  • 资源 9
  • Deno 8
  • Dom 8
  • 杂谈 8
  • 正则表达式 8
  • 测试 8
  • 什么是高可用性(high availability)?
  • 基本 HA 基础架构是什么样的?
  • 什么是浮动IP?
© 2018 - 2022 疯狂的技术宅 All Rights Reserved
Powered by - Hugo v0.99.0 / Theme by - NexT
Storage by 俺的服务器 / 冀ICP备2022010157号
0%