domain-name-system – Round-Robin DNS“足够好”用于负载均衡静态内容吗?

前端之家收集整理的这篇文章主要介绍了domain-name-system – Round-Robin DNS“足够好”用于负载均衡静态内容吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一组共享的静态内容,我们在 http://sstatic.net之间在我们的网站之间提供.不幸的是,这个内容目前根本没有负载平衡 – 它是从单个服务器提供的.如果该服务器出现问题,那么依赖它的所有站点都会有效关闭,因为共享资源是必不可少的共享javascript库和映像.

我们正在研究如何在此服务器上对静态内容进行负载平衡,以避免单一服务器依赖性.

我意识到循环DNS充其量只是一个低端(有些甚至可能说是贫民窟)解决方案,但我不禁疑惑 – 循环DNS是一个“足够好”的解决方案,用于静态内容的基本负载均衡?

[dns] [load-balancing]标签中对此进行了一些讨论,我已经阅读了一些关于该主题的精彩帖子.

我知道通过多个循环A记录的DNS负载平衡的共同缺点:

> DNS记录通常没有检测到心跳或故障,因此如果轮换中的给定服务器出现故障,则必须手动从DNS条目中删除其A记录
>生存时间(TTL)必须设置得相当低才能完全正常工作,因为DNS条目在整个互联网上都是积极缓存的
>客户端计算机负责查看有多个A记录并选择正确的A记录

但是,循环DNS是否足够好作为首发,总比没有好,“我们研究和实现更好的替代方案”形式的负载平衡我们的静态内容?或者DNS循环在任何情况下几乎都没有价值?

解决方法

杰夫,我不同意,负载平衡并不意味着冗余,事实上恰恰相反.您拥有的服务器越多,您在特定时刻发生故障的可能性就越大.这就是为什么冗余在进行负载平衡时是必需的,但不幸的是,有很多解决方案只提供负载平衡而不执行任何健康检查,从而导致服务不太可靠.

通过在多个点(可能是地理位置分布)上分配负载,DNS roundrobin非常适合增加容量.但它不提供故障转移.您必须首先描述您试图涵盖的失败类型.必须使用标准IP地址接管机制(VRRP,CARP,…)在本地覆盖服务器故障.交换机故障由服务器上的弹性链路覆盖到两个交换机.使用路由协议或layer2解决方案(例如:多链路PPP),您和您的提供商之间的多链路设置可以涵盖WAN链路故障. BGP应该覆盖站点故障:您的IP地址将在多个站点上复制,并且只有在可用的地方才会将它们通知网络.

从您的问题来看,您似乎只需要提供服务器故障转移解决方案,这是最简单的解决方案,因为它不涉及任何硬件或与任何ISP的合同.您只需在服务器上设置适当的软件,这是迄今为止最便宜,最可靠的解决方案.

你问“如果haproxy机器出现故障怎么办?”.一样的.我认识的所有使用haproxy进行负载平衡和高可用性的人都有两台机器,可以运行ucarp,keepalived或heartbeat,以确保其中一台始终可用.

希望这有帮助!

猜你在找的HTML相关文章