2016-11-14 4 views
0

У меня есть несколько серверов Node.js, и я хочу, чтобы каждый клиент подключался к ближайшему к ним (или с наименьшими перелетами).Пинг самый эффективный способ найти лучший сервер?

На данный момент у меня есть клиенты, подключающиеся к серверу, который отвечает первым (т.е. самый низкий пинг).

Однако будет ли это на самом деле точный способ совпадения людей с лучшим сервером? Если нет, то какой будет лучший метод?

ответ

0

Один пинг даст вам единую метку с интервалом в три раза, чтобы продолжить. Это лучше, чем ничего, и часто (но не всегда) может быть достаточно хорошим прокси для общей сетевой задержки для этого сервера. Было бы хорошо начать с этого. Имейте в виду, что:

  1. пинг сообщение ICMP, который обычно обрабатывается ОС напрямую не вашего приложения, поэтому pingable сервер может иметь разбитого или медленное приложение
  2. ICMP обычно блокируется межсетевым экраном так что unpingable server может фактически обслуживать приложение просто отлично.

Однако «лучший» сервер является гораздо более сложным, и если вы хотите, определение высокого качества «лучших» вам, вероятно, нужно принять во внимание недавнее производительность сервера более целостно, включая такие как недавнее время отклика на уровне приложения, общее количество активных соединений, загрузка процессора, загрузка ввода-вывода и т. д. Вероятно, вам понадобится способ уровня приложения для клиента, чтобы задать основные показатели работоспособности и производительности, а сервер отправить их назад, а затем алгоритм, который преобразует это в числовой числовой счет. Я думаю, что следующий следующий шаг после задержек, чтобы получить пустой ответ, - это просто посмотреть среднее время отклика (или процентиля) каждого сервера за последнюю минуту или около того и выбрать тот, у которого самое низкое время.

Смежные вопросы