繁体   English   中英

Node.js:从用户位置选择DigitalOcean城市

[英]Node.js: choosing DigitalOcean city from location of user

我在HTTP服务器上使用Node.js。 我希望每个连接的用户都使用WebSockets连接到实时游戏服务器,并且希望他们连接到距离他们最近的服务器。 我正在使用DigitalOcean,所以这里是可用城市的列表:

  • 纽约
  • 阿姆斯特丹
  • 圣弗朗西斯科
  • 新加坡
  • 伦敦
  • 法兰克福
  • 多伦多

我需要使用连接用户的IP地址的位置并找到最近的城市,以便可以连接到最近的服务器。

我已经考虑了执行此操作的方法:

  • 获取国家/地区列表并将其划分为区域组,每个区域都属于一个不同的DigitalOcean城市。
  • 获取用户的近似经度/纬度位置,并查看到每个城市的每个经度/纬度位置的距离,并选择最小的距离。

以上两种方法中哪一种更好? 我该如何使用Node.js和NPM做得更好? 还有其他更好的选择吗?

我认为解决此问题的最佳解决方案是使用Anycast或类似的解决方案:重定向多个方向的IP。

有关Anycast的更多信息

任播是一种网络技术,其中从多个位置通告相同的IP前缀。 然后,网络根据路由协议成本以及可能的广告服务器的“运行状况”,决定将用户请求路由至哪个位置。

根据任播的实现方式,它还可以提供一定程度的高可用性。 如果任播路由的广告以某种健康检查为条件(例如,在此示例中,例如,对一个众所周知的域的DNS查询),则一旦服务器发生故障,就可以删除其路由。 网络重新融合后,用户请求将被无缝转发到下一个最接近的DNS实例,而无需任何手动干预或重新配置。

链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM