在没事的时候,我总会想一些变态的方案来解决我的需求,刚才楼下散步的时候,又想了一个变态的智能DNS方案。
首先说需求背景:在将来的某一天,我会推出一个另外一个廉价但是靠谱的互联网服务,这个服务有个特点,就是需要大约10个或者更多位于全球的服务器来分发内容,服务器多了,就难免有某个服务器宕掉而无法检测到。
需求出来了:要求一旦有服务器宕,该服务器对应域名的IP就自动解析到其他任何一个可用的服务器的IP上,这样就保证分发服务器能达到100%的可用率。
可能这个时候有朋友就会跳出来说,用那种可以检测宕机的智能DNS啊,是的,解决方案就这么简单。不过既然我这篇日志提到的是变态的解决方案,肯定讲的不是常规的智能宕机检测DNS。
我的实现方式是这样的,假设需要检测的服务器有10台,那么我就在这10台服务器上分别配置服务器检测脚本,这个脚本的功能如下:
- 每几分钟检测其他几台服务器的web server的状态,10台一起行动,每台服务器被检测的时间间隔就很短,可能一分钟就能被检测一次;
- 一旦发现某台服务器宕机,利用enom的DNS API,自动将宕机服务器的域名如:server001.homezz.com 随机解析到其他未宕机的服务器;
- 于是乎,山寨的智能DNS就实现鸟;
脚本可以用shell,也可以用perl,甚至还能用php,实现起来相当简单。
欢迎专家在下面拍砖!
其实,熟悉我的人都知道,我很多解决方案都是自己想出来的,好的是,有些方法居然和大家通用的方案竟然一致,懒人就这样,不愿意接受传统东西,没办法!




