2016-11-14 97 views
0

我有多个Node.js服务器,并且我希望每个客户端连接到离它们最近的一个(或者最少跳数)。ping是寻找最佳服务器的最有效方法吗?

目前,我正在让客户端连接到首先响应的服务器(即最低的ping)。

但是,这实际上是一种将人们匹配到最佳服务器的准确方法吗?如果不是,那么更好的方法是什么?

回答

0

单个ping会给你一个单一的往返时间指标。这总比没有好,并且通常(但并非总是)可以成为该服务器的一般网络延迟的良好代理。从这开始就可以了。请记住:

  1. 平是通常由OS直接而不是你的应用程序,因此可ping服务器可能已崩溃或慢的应用程序处理
  2. ICMP通常防火墙阻挡这样的ICMP消息无法打开的服务器实际上可能正在为应用程序提供服务。

但是“最好”的服务器是一个复杂得多,如果你想要高品质的决心“最好的”你可能需要考虑到服务器的最近的表现更加全面,包括例如最近的应用程序级别响应时间,活动连接总数,CPU负载,I/O负载等。您可能希望为客户端提供应用程序级别的方式以请求基本的运行状况/性能指标以及服务器发送它们返回,然后将算法转换为可排名的数字分数。我认为,延迟获得空白响应后的下一步很好,只需在最后一分钟左右查看每个服务器的平均(或百分位)响应时间,然后选择时间最短的响应时间。

相关问题