7

我是一名 Java 编码员,不太熟悉网络的工作方式(除了基本的 UDP/TCP 连接)

假设我在美国、亚洲、拉丁美洲和欧洲的机器上运行服务器。当用户请求服务时,我希望他们的请求发送到离他们最近的服务器。

我是否有可能拥有一个地址:mycompany.com,并以某种方式将请求路由到适当的服务器?显然,当有人访问 cnn.com 时,他们会从附近的服务器接收图片、视频等。坦率地说,我不明白它是如何工作的。

顺便说一句,我的服务器不提供网页服务,它们提供其他服务,例如股市数据……以防万一。

由于我是一名程序员,我很想知道如何在软件中做到这一点。由于这只不过是一种无聊的好奇心,因此指向商业产品或服务的指针对理解这个问题没有多大帮助:)

4

4 回答 4

0

一种简单的方法是查看进入 UDP DNS 请求的 IP 地址的第一个字节(A 类),然后基于您可以提供正确的地理位置 IP。

于 2009-06-24T19:47:46.813 回答
0

另一种方法会稍微复杂一些。您可以使用对该用户具有最低延迟的服务器,而不是使用地理上距离用户最近的服务器。

较低的延迟将提供更快的传输速度,同时比地理位置更容易计算。

如需更详细的了解,请查看这篇关于 CDN 的文章(注意技术部分):

内容交付网络 - 维基百科

这些是大型网站用来通过网络分发其内容的网络类型(Akamai 是一个流行的例子)。如您所见,由于 CDN 拥有自己的专有协议等,事情很快就会变得非常复杂......

于 2009-06-24T19:49:25.983 回答
0

更新:我没有在原帖末尾看到关于商业解决方案的免责声明。我会把它留给那些可能会感兴趣的人。

--

看看http://ultradns.com/ 像这样的托管 DNS 服务可能正是您需要完成的任务。

Amazon.com、Forbes.com、Oracle,都在使用它们……

引自http://ultradns.com/solutions/traffic.html

UltraDNS 流量管理解决方案提供了一组工具,允许 IT 管理员为位于一个或多个地理位置的内容服务器定义负载平衡配置。流量管理解决方案通过动态更改对 DNS 请求的响应来管理定向到服务器的流量。负载平衡是基于从主机服务器获得的动态指标在持续监控的基础上执行的。UltraDNS 流量管理解决方案不是一个单一的应用程序,而是结合了多个现有 UltraDNS 系统的功能来控制流量、管理站点故障和优化 Web 内容系统。

于 2009-06-24T19:50:13.250 回答
0

正如 Jeff 提到的,一种方法是使用 IP 地址:http ://en.wikipedia.org/wiki/Geolocation_software

根据我的经验,这对于最近的相对较大的城市(至少在美国)来说是精确的。有几个开放的数据库可以帮助实现这一点(参见 wiki 链接)。然后您可以根据这些信息生成图像标签和下载链接等。

至于找到最近的服务器,我相信你可以想到一些方法来做到这一点。例如,如果您可以获得的最佳回报是主要城市,您可以在纬度/经度列表中查找该城市并据此计算最近的服务器。

于 2009-06-24T20:03:43.363 回答