2015-11-02 83 views
0

说我有一个名为example.com域现在已经有两个客户端试图连接它域名到IP /服务器映射按地理位置

+----------+          +-------------+ 
| Client 1 |\          |    | 
+----------+ \   +--------------+  |    | 
(East Asia) \---------> |    |  |    | 
          | example.com | <---> | Server | 
       /---------> |    |  |    | 
+----------+/   +--------------+  |    | 
| Client 2 |/     (DNS)    |    | 
+----------+          +-------------+ 
(North America)        (sample application 
             server located in North America) 

这会导致东亚地区的客户大延迟,我想什么有是:

            +-------------+ 
                |    | 
+----------+          | Server 1 | 
| Client 1 |\        /--->| (Asia)  | 
+----------+ \   +--------------+/ |    | 
(East Asia) \---------> |    |-/  +-------------+ 
          | example.com |  +-------------+ 
       /---------> |    |-\  |    | 
+----------+/   +--------------+ \  | Server 2 | 
| Client 2 |/     (DNS)   \--->| (N America) | 
+----------+          |    | 
(North America)         |    | 
                +-------------+ 

我的应用程序没有在TCP使用标准HTTP其自定义协议,需要保持与client连接。

如何根据同一域名上的地理位置进行此类映射?

回答

1

鉴于DNS的分布式特性,您要求的内容实际上并不容易(例如,考虑客户端1和客户端2都使用Google的公开解析器8.8.8.8进行查找的情况) 。如果你真的想这样做,开始查看主要的DNS服务器服务公司的网页,看看它们中的任何一个是否提供它。

一个可能更便宜也更容易的选择是向您的应用程序添加一个步骤,您的服务器将检查连接客户端来自哪里,并可以告诉客户端软件“与其他服务器而不是我交谈”。