我对Web应用的跨机房故障转移策略感兴趣,以便如果主站点发生故障,用户可以无缝地转到另一个机房的备用站点。
就应用程序而言,大部分已经解决了,在机房之间设置主从数据库,并设计了可以恢复并能够在运行中断时继续执行的服务。我正在尝试找出从主站点向备用站点转移流量的策略。即使使用低TTL的DNS故障转移,似乎也存在相当大的延迟。
如果假设主机房的服务器不可访问,您会推荐哪些快速移动机房之间流量的策略?
如果您有其他有趣的经验/智慧之言关于跨机房故障转移,我也很愿意听取。
我对Web应用的跨机房故障转移策略感兴趣,以便如果主站点发生故障,用户可以无缝地转到另一个机房的备用站点。
就应用程序而言,大部分已经解决了,在机房之间设置主从数据库,并设计了可以恢复并能够在运行中断时继续执行的服务。我正在尝试找出从主站点向备用站点转移流量的策略。即使使用低TTL的DNS故障转移,似乎也存在相当大的延迟。
如果假设主机房的服务器不可访问,您会推荐哪些快速移动机房之间流量的策略?
如果您有其他有趣的经验/智慧之言关于跨机房故障转移,我也很愿意听取。
关于DNS,我喜欢参考 "为什么基于DNS的全球服务器负载平衡不起作用"。对于其他所有内容,使用BGP。
使用BGP设计网络以实现负载均衡仍然不是一项易事,并且我自己肯定也不是专家。它比维基百科上介绍的更加复杂,但是有一些有趣的文章详细介绍了如何实现:
如果您搜索BGP和负载平衡,您将会发现更多内容。互联网上还有一些白皮书描述了Akamai如何进行全球负载平衡(我认为也是使用BGP),这总是很有趣的阅读和学习。
除了您可以使用软件和硬件实现的明显概念外,您可能还希望与您的ISP/提供商/colo联系以设置您的系统。
另外,关于您选择的colo(提供者是谁?)没有冒犯之意,但大多数地方都应该设置好应对停机等问题,不应要求您采取行动。当然,洪水或外星人总是可能袭击,但在那种情况下,我想有更重要的问题需要解决。 :-)