Loading...

变态的智能DNS实现方法

2011-02-19 21:28:56 发表于PHP, 网站技术, 虚拟主机 本文链接: 变态的智能DNS实现方法

在没事的时候,我总会想一些变态的方案来解决我的需求,刚才楼下散步的时候,又想了一个变态的智能DNS方案。

首先说需求背景:在将来的某一天,我会推出一个另外一个廉价但是靠谱的互联网服务,这个服务有个特点,就是需要大约10个或者更多位于全球的服务器来分发内容,服务器多了,就难免有某个服务器宕掉而无法检测到。

需求出来了:要求一旦有服务器宕,该服务器对应域名的IP就自动解析到其他任何一个可用的服务器的IP上,这样就保证分发服务器能达到100%的可用率。

可能这个时候有朋友就会跳出来说,用那种可以检测宕机的智能DNS啊,是的,解决方案就这么简单。不过既然我这篇日志提到的是变态的解决方案,肯定讲的不是常规的智能宕机检测DNS。

我的实现方式是这样的,假设需要检测的服务器有10台,那么我就在这10台服务器上分别配置服务器检测脚本,这个脚本的功能如下:

  1. 每几分钟检测其他几台服务器的web server的状态,10台一起行动,每台服务器被检测的时间间隔就很短,可能一分钟就能被检测一次;
  2. 一旦发现某台服务器宕机,利用enom的DNS API,自动将宕机服务器的域名如:server001.homezz.com 随机解析到其他未宕机的服务器;
  3. 于是乎,山寨的智能DNS就实现鸟;

脚本可以用shell,也可以用perl,甚至还能用php,实现起来相当简单。

欢迎专家在下面拍砖!

其实,熟悉我的人都知道,我很多解决方案都是自己想出来的,好的是,有些方法居然和大家通用的方案竟然一致,懒人就这样,不愿意接受传统东西,没办法!

标签:
发表于 2011-02-19 21:28:56 目录:PHP, 网站技术, 虚拟主机 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    已经有17位大师动手指导 拒绝低俗
    • 1楼 静静 在2011.02.19 21:32发表评论如下: 回复

      东哥叫我来拍砖,我就过来了….

      • 2楼 cashplk 在2011.02.19 21:33发表评论如下: 回复

        类似于心跳机制检测的,但是要保证主次把?例如有台机器去检测所有机器。

        随口瞎说。 :)

        • 2楼附属品 江东 在2011.02.19 21:35发表评论如下: 回复

          不需要主次,大家都平等,否则负责检测的主机宕机了,那么就失效了

          • 2楼附属品 cashplk 在2011.02.19 21:49发表评论如下: 回复

            是的,这样的话,就都需要在把有效的在动态分配的机器上注册一下,防止无效的跳转。

            多谢回复。

            • 2楼附属品 江东 在2011.02.19 21:52发表评论如下: 回复

              不会的,设置跳转优先级,同时有flag标志。这个就是具体的实现了,文中只是描述大致思路

              • 2楼附属品 cashplk 在2011.02.19 21:54发表评论如下: 回复

                思路很好,顶。

                工程师思维,我思考多了。

                见谅。

        • 3楼 bronco 在2011.02.19 21:35发表评论如下: 回复

          话说切换的话要考虑A记录的生效时间吧……

          • 3楼附属品 一会 在2011.02.20 00:51发表评论如下: 回复

            国内的DNS缓存更新,时间都是超长~悲剧了!

          • 4楼 interjc、 在2011.02.19 21:36发表评论如下: 回复

            东哥赶快开发吧,顺手拍砖一枚

            • 5楼 明泉 在2011.02.19 21:42发表评论如下: 回复

              刘慈欣 《白垩纪往事》 终极威慑

              • 6楼 lhcn 在2011.02.19 21:42发表评论如下: 回复

                其实,受到东哥的启发,我想到一个更”变态”的方法
                “活着”的主机去竞争DNS,”死掉”的主机自然无法竞争到记录,也就是被排除了……

                • 7楼 anonymousor 在2011.02.19 21:49发表评论如下: 回复

                  有技术支撑,自己的想法实现起来就是不一样

                  • 8楼 最弱 在2011.02.19 22:21发表评论如下: 回复

                    拍砖!哈哈哈哈!支持。

                    • 9楼 Solrex 在2011.02.20 01:23发表评论如下: 回复

                      一是DNS扩散速度问题,二是false positive导致DNS震荡问题,三为什么这些服务器要设置不同的域名?

                      • 10楼 kc 在2011.02.20 10:20发表评论如下: 回复

                        前段时间需要宕机切换的功能,8gdns没有,dnspod不对免费用户开放了,而且监控时间间隔较长,所以干脆用其它间隔时间短的监控,发现宕机则发送邮件至139邮箱,因为只有一个站点需要修改,收到短信手动下就行了。也想过用dnspod的api写个手机一键切换IP(因为也没有10台服务器,只在主站和备份站间切换就行)或者把varnish放在云上,做健康监测。最后发现主机的在线率很好,就没考虑这些变态的想法了。

                        • 11楼 hidigi 在2011.02.20 12:54发表评论如下: 回复

                          支持东哥

                          • 12楼 莲花 在2011.02.24 17:34发表评论如下: 回复

                            不错~
                            支持一下

                            评论分页: 1
                            (Required)
                            (Required, not published)
                            如果留言未显示无需重复留言,我将为你恢复!