如何制作高可用性网页?

如何制作高可用性网页?

当我们需要高可用性服务时(它不计量什么类型的服务:它可以是数据库,队列系统,我们的应用程序),我们将其分布在许多机器上,以确保当一台机器宕机时,其余机器可以承担额外的负载。

非常简单。

但是如何将负载均衡器分散到多台机器上呢?

DNS 记录可以指向 1 个或几个服务器。但是当我们的服务器发生 DNS 故障时,任何客户端都不知道该特定机器未运行。客户端将向其发出请求,并会收到我们的网页无法正常工作的信息。

如何集群负载均衡器层?

答案1

首先,考虑一下您愿意承担的复杂性,以便在单个负载均衡器盒之上实现可用性。负载通常不是问题,单个主机可以处理大量连接。

负载平衡器可以像其他任何东西一样进行集群化,以解决硬件或其他节点故障。一个开源示例是使用基于 VRRP 的 keepalived 的 haproxy。几个本地 HA 设计的典型特征是它需要相同的第 2 层。这意味着云上的替代解决方案只为您提供第 3 层。

第 2 层无法帮助互联网到达健康节点,或者您的数据中心离线。这意味着 DNS 或 IP 路由必须巧妙。

DNS 可以根据自动健康检查或手动返回不同的记录。但是,客户端可以将结果缓存数小时,这对于许多恢复目标来说太长了。

将同一 IP 指向不同的路径是路由问题。向工作负载均衡器通告路由。

答案2

请参阅 HAPROXY 或类似的负载/平衡哈普罗西

添加回答问题:

好的,你只需要一个 DNS 记录

客户端<-> HAPROXY<-> 服务器 A<-> 服务器 B

HAPROXY 位于客户端和服务器的中间。

HAPROXY 配置如下

bind *:80

        acl host_mysite hdr(host) -i mysite.com
        use_backend mysite if host_mysite


backend mysite
    mode http 
    balance roundrobin
    option httpclose
    option forwardfor
    server  serverA ip:port check inter 2000
    server  serverB ip:port check inter 2000

相关内容