如何设计高可用性系统

如何设计高可用性系统

假设我在生产环境中的服务器上运行一些 Web 应用程序和一些桌面应用程序。

在生产环境中,即使是一分钟的停机时间也是不能容忍的。目前我只知道HA Cluster system哪个是用于此目的的。我想知道这是防止系统关闭的唯一方法吗?或者除此之外还有其他方法吗?

像谷歌这样的大公司使用什么来实现高可用性,因为他们不能容忍哪怕一秒钟的停机时间?

谢谢

答案1

基本上,您希望对运行应用程序所需的每个服务进行自动故障转移。

一种解决方案可能是以下描述的方法:

  1. 两个系统上都安装了 Keepalived。
  2. HAProxy 作为负载均衡器,故障转移到 HAP LB 2. 由 keepalived 监控
  3. HAP 后面是 Apache/NGINX。如果其中一个服务器发生故障,HAP 将对其进行监控,并将重定向到另一台服务器上的 Apache/NGINX
  4. MySQL Master/Master 复制,通过 HAP 进行负载平衡和监控

基本上,HAProxy 会分散系统上的负载,并且仅转发到正在运行的服务之一。

您正在寻找的架构可能如下所示:

在此处输入图片描述

答案2

这取决于——每个应用程序和 OSI 模型的每个级别都必须创建自己的 HA 系统

但首先你可以了解 ha-proxy、keepalived 和带有后端的 nginx

答案3

系统的强度取决于最薄弱的环节。

在典型的生产环境中,每样东西都会有多个。小型 Web 集群可能由一个负载均衡器、多个反向代理、多个 http 服务器、主/从或主/主数据库节点组成。在这种设置中,单个负载均衡器将是薄弱环节;如果它坏了,什么都无法正常工作。更大的环境会复制这种情况,但规模更大。

最终,网络设计将取决于预期用途。

相关内容