我对Web应用程序的跨站点故障转移策略感兴趣,这样,如果主站点发生故障,则用户可以无缝地进入另一个colo的故障转移站点。
事物的应用程序方面似乎主要是通过在colos和旨在恢复并能够接收中游的服务之间建立的主从数据库设置来解决的。我正在尝试找出将流量从主站点转移到故障转移站点的策略。即使具有低TTL,DNS故障转移似乎也带有fair bit of latency。
假设主colo上的服务器不可达,您会建议采取哪些策略在colos之间快速移动流量?
如果您还有其他有趣的经验/关于跨群体故障转移的智慧之言,我也很想听听。
最佳答案
即使您将低TTL放在区域文件中,基于DNS的机制也很麻烦。
这样做的原因是,许多应用程序(例如MSIE)都维护自己的忽略TTL的缓存。其他软件将执行一个gethostbyname()
或等效调用,并存储结果,直到程序重新启动。
更糟糕的是,已知许多ISP的递归DNS服务器会忽略低于其首选最小值的TTL,并施加其较高的TTL。
最终,如果站点要从两个数据中心运行,而不更改其IP地址,则您需要通过全局BGP4路由公告查看“多宿主”的安排。
使用多宿主,您需要至少获得一个/24网络块的“提供商独立”(也称为“PI”)IP地址空间,然后仅在主站点脱机时才从备份站点向全局路由表发布该消息。