假设一个网站在高峰时段可能有数十万个并发用户,那么在负载均衡器资源只能支持 40,000 个并发连接的情况下,如何管理负载?(系统规格,不受我控制)
我能想到的唯一方法是将所有传入流量以轮询方式重定向到 X 个子域之一(例如 1.domain.com、2.domain.com...X.domain.com),其中每个子域指向不同的负载平衡器。从服务器的角度来看,这种重定向和移交是否成本高昂?它会导致浏览器警告(例如页面www.域名.com正在尝试将您重定向到...?有没有我忽略的更好的方法?(例如获取更大的负载平衡器)
有没有‘正确’的方法来做到这一点?
答案1
一种常见的解决方案是使用全球服务器负载均衡器或 GEO。在这种情况下,用户的 DNS 查询将分发到不同的 IP 地址(每个 IP 地址都映射到单独的负载均衡器)。大多数 GLSB 都包含对负载均衡器端点的健康检查(如果一个端点发生故障,则停止将用户发送到该 IP),并且还可用于将用户路由到负载均衡器遍布全球的最佳端点,即将欧洲流量发送到欧洲端点等。
此解决方案将消除您提到的重定向的需要,而重定向本身可能会给 as 添加不必要的负载
答案2
我使用动态路由协议(如 OSPF)进行过几次部署。有一些用 bash 编写的触发脚本,用于检查代理/应用服务器是否正常工作,然后启动/停止 bgpd/ospfd(或者只是使用 vtysh 添加公告)。此路由守护进程在网络(/32 子网)中宣布一个 IP 地址,然后如果两条路径的成本相同,路由器将平等分配流量 - 这称为 ECMP(等价多路径)。