根据地理位置

时间:2015-11-02 03:08:27

标签: dns geolocation server load-balancing high-availability

假设我有一个名为example.com的域名,现在有两个客户端正在尝试连接它

+----------+                                      +-------------+
| 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)                                   |             |
                                                  +-------------+

我的应用程序未在HTTP中使用标准TCP自定义协议,并且需要与client保持连接。

如何根据相同域名的地理位置进行此类映射。

1 个答案:

答案 0 :(得分:1)

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

可能更便宜和更容易的替代方法是在您的应用程序中添加一个步骤,其中您的服务器检查连接客户端的来源,并告诉客户端软件“与其他服务器交谈,而不是我”。

相关问题