我正在研究一个项目,因为我们有遍布世界各地的服务器号码(目前有5个).客户端通过集中式代理连接到其中一个服务器.我们知道客户的原始国家,但没有别的.我们完全控制服务器,因此我们可以获得所需的所有信息.我们不控制客户,他们必须按照标准连接这个经纪人.
经纪人选择具有低延迟的服务器非常重要,因此我们拥有的数据我认为接近度是我们唯一可用的标准.
想到的第一个想法是从每个服务器ping客户端,但我们没有ip,只有国家.
我们的另一个想法是从每个服务器ping每个国家的根节点.问题是在每个国家都找到了一个根节点.
您是否知道如何计算/查找"国家/地区"之间的距离?您对如何以其他方式解决此问题有任何见解或想法吗?
这很棘手,比许多想象的要多,但我觉得有一个正确的答案.
当然,天真(但很酷)的解决方案是检查客户端的IP,这是一个良好的开端,但在"现实世界"中,地理定位不是一切 ......
您刚刚要求" 低延迟 ",这意味着您应该在服务器和客户端之间执行ping操作并相应地进行分配.我个人多次影响这个问题的一个很好的例子就是我在日本工作,台湾的服务器说我在美国的服务器很多.但是,与台湾相比,日本和美国之间的延迟要小很多倍(响应速度更快),因为连接日本和台湾的电缆和路由器以及什么东西都没有日本和美国之间那么好.因此,如果你把我与台湾联系起来,因为你认为我的知识产权更接近,那么你会给我一个非常大的不满那里.除了ping和启动时的实际小测试比保留一些不断更新的Geolocation数据库更容易