11

我对 web 应用程序的跨 colo 故障转移策略感兴趣,这样如果主站点发生故障,用户可以无缝地登陆另一个 colo 的故障转移站点。

事物的应用程序方面看起来主要是通过在 colo 和服务之间的主从数据库设置来解决的,这些服务旨在恢复并能够在中途获取。我试图找出将流量从主站点转移到故障转移站点的策略。DNS 故障转移,即使 TTL 较低,似乎也有相当长的延迟

假设主 colo 的服务器无法访问,您会推荐哪些策略来在 colo 之间快速移动流量?

如果您有其他关于跨域故障转移的有趣经验/智慧之言,我也很想听听这些。

4

3 回答 3

4

基于 DNS 的机制很麻烦,即使您在区域文件中放置了低 TTL。

原因是许多应用程序(例如 MSIE)维护自己的缓存,忽略 TTL。其他软件将执行单个gethostbyname()或等效调用并存储结果,直到程序重新启动。

更糟糕的是,众所周知,许多 ISP 的递归 DNS 服务器会忽略低于其首选最小值的 TTL,并强加自己更高的 TTL。

最终,如果站点要从两个数据中心运行而不更改其 IP 地址,那么您需要通过全球 BGP4 路由公告查看“多宿主”的安排。

使用多宿主,您需要至少获得一个“独立于提供商”(又名“PI”)IP 地址空间的 /24 网络块,然后只有在主站点离线时才从备份站点向全局路由表公布。

于 2008-12-30T20:53:54.057 回答
3

至于 DNS,我喜欢参考“为什么基于 DNS 的全局服务器负载平衡不起作用”。对于其他一切——使用 BGP

使用 BGP 设计网络以实现负载平衡仍然不是一件容易的事,我本人当然不是这方面的专家。它也比 Wikipedia 可以告诉你的更复杂,但是网上有几篇有趣的文章详细说明了它是如何完成的:

如果您搜索 BGP 和负载平衡,总会有更多。网上还有几份白皮书描述了 Akamai 如何进行全局负载平衡(我相信它也是 BGP。),阅读和了解这些内容总是很有趣。

除了可以使用软件和硬件来实现的显而易见的概念之外,您可能还想与您的 ISP/提供商/colo 核实他们是否可以为您设置。

此外,关于您选择 colo(谁是提供者?)没有冒犯,但大多数地方应该设置为处理停机时间等,他们不应该要求您采取行动。当然,洪水或外星人总是会袭击,但在那种情况下,我想还有更重要的问题。:-)

于 2008-12-30T23:13:35.460 回答
0

如果可以,多播 - http://en.wikipedia.org/wiki/Multicast或 AnyCast - http://en.wikipedia.org/wiki/Anycast

于 2008-12-30T20:48:00.483 回答