我有一个网站,开始得到大量的stream量,就在前一天,我们的负载均衡器(haproxy)所在的数据中心出现networking中断。 这让我感到担心,尽pipe我尽全力使系统完全冗余,但我仍然无法使DNS冗余,我认为这不是一个简单的解决scheme。
只有我能够find的东西是从dnsme等地方注册DNS故障转移,但是他们花了太多的钱出现在初创公司。 即使他们的企业计划每个月也只会给你五千万个查询,我们在一个星期内使用它。
所以我的问题是,有没有任何自我托pipe的DNS我们可以做,如dnsme如何提供故障转移?
DNS是为冗余而devise的。 在单独的数据中心安装两台绑定服务器。 设一个是另一个的奴隶。 确保两者都列在您的域名注册商。 完成。
这是一个随机select的指南,build立一个从服务器: http : //docstore.mik.ua/orelly/networking_2ndEd/dns/ch04_08.htm
好的,您正在通过将您的Alogging切换到不同的IP地址来寻找故障转移。 如果您使用BIND作为名称服务器,那么这样做也相当容易。 您可以编写一个脚本,调用nsupdate来添加/删除/更改您的DNSlogging。 无论使用什么集群或监视系统,都可以检查您的负载均衡器是否无法访问,并将DNSlogging更改为指向仍然有效的DNSlogging,或者如果使用轮循dns删除失败的节点,然后再添加回来。
我做了类似的事情,并且在世界各地的几个数据中心运行多个haproxy实例(甚至在每个数据中心集群故障转移)。 我还需要基于GeoIP的stream量隔离到这些不同的数据中心,所以我采用了Dyn.com的“高级stream量pipe理”解决scheme,这个解决scheme可以让全球不同地区的服务达到全球最快的位置,同时也处理监控和像你正在寻找的失败。 Dyn(我相信其他人)提供监视/故障转移的解决scheme,例如http://dyn.com/dns/dynect-managed-dns/active-failover/
如果您试图以便宜的方式来做到这一点,并且当您说haproxy“closures”意味着由于数据中心宕机而无法响应,您可以尝试为您的DNS请求提供多个Alogging。 这实质上是将请求循环到不同的服务器,如果第一个失败,让客户端尝试其他服务器。
我build议使用托pipe解决scheme,因为它对我来说很好。 我认为DnsMadeEasy也提供了一个类似的地理分布产品,包括监测(更便宜的感谢Dyn)。
你当然可以build立一些自己的解决scheme,但是你应该考虑这样做的全部成本,重点关注你的公司提供的核心服务。 所有关于权衡… 🙂
另外,如果你的DNS查询每周要花费50M,除非你有很多一次访问者(我实际上是这么做的),这听起来很多。 确保你的TTL设置不是太低。 如果是这样的话,你可能会希望你将不得不为你的托pipe服务付出更多的代价。