服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

多个数据中心和HTTPstream量:DNS循环是确保即时故障转移的唯一方法?

指向同一个域的多个Alogging似乎几乎专门用于实现DNS Round Robin作为一种便宜的负载平衡技术。 针对DNS RR的通常警告是对高可用性不利。 当一个IPclosures时,客户端将继续使用它几分钟。 负载平衡器通常被认为是更好的select。 这两个要求并不完全正确: 当stream量是HTTP时,大多数HTML浏览器能够自动尝试下一个Alogging(如果前一个logging已closures),而不需要新的DNS查询。 在这里阅读第3.1章 。 当涉及多个数据中心时,DNS RR是通过它们分配stream量的唯一select。 那么,在多个数据中心和HTTPstream量的情况下,使用DNS RR是确保在一个数据中心发生故障时立即进行故障切换的唯一方法吗? 谢谢, 华伦天奴 编辑: 当然,每个数据中心都有一个带有热备份的本地负载均衡器。 牺牲即时故障切换的会话亲和力是可以的。 AFAIK DNSbuild议一个数据中心而不是另一个数据中心的唯一方法是只回复与该数据中心相关的IP(或IP)。 如果数据中心变得无法访问,那么所有这些IP也是不可访问的。 这意味着,即使智能HTML浏览器能够立即尝试另一个Alogging,所有的尝试都将失败,直到本地caching条目到期,并完成新的DNS查找,获取新的工作IP(我假设DNS自动build议新的数据中心,当一个失败)。 所以,“聪明的DNS”不能保证即时的故障切换。 相反,DNS轮询允许它。 当一个数据中心出现故障时,智能HTML浏览器(大多数)会立即尝试其他caching的Alogging跳到另一个(工作)的数据中心。 所以,DNS循环不保证会话亲和性或最低的RTT,但似乎是当客户端是“智能”HTML浏览器时确保即时故障转移的唯一方法。 编辑2: 有人build议将TCP Anycast作为一个明确的解决scheme。 在本文中(第6章)解释了Anycast故障切换与BGP收敛有关。 为此,Anycast可以使用15分钟到20秒来完成。 在拓扑结构为此优化的networking上可能需要20秒。 可能只有CDN运营商可以授予这种快速失败。 编辑3:* 我做了一些DNS查找和traceroute(也许一些专家可以仔细检查)和: 使用TCP Anycast的唯一CDN似乎是CacheFly,CDNnetworking和BitGravity等其他运营商使用CacheFly。 似乎他们的边缘不能用作反向代理。 因此,它们不能用于授予即时故障转移。 Akamai和LimeLight似乎使用地理感知DNS。 但! 他们返回多个Alogging。 从traceroute看来,返回的IP在同一个数据中心上。 所以,我对当一个数据中心崩溃时如何提供100%的SLA感到困惑。