Мнение наивного способа реализации распределения нагрузки для сервера на стороне клиента - PullRequest
0 голосов
/ 05 февраля 2010

Я думал о совместном использовании клиента для сервера, который мог бы быть выполнен посредством выполнения на стороне клиента практически без помощи со стороны сервера, и придумал это -

Извините, если это звучит глупо, но я иду -

  1. На сервере есть таблица, в которой хранятся поля имен серверов, IP-адресов серверов и соответствующих MAC-адресов IP-адресов (да, это очень ориентированный на Windows подход)
  2. Каждый раз, когда клиент входит в систему на главном сервере, он отправляет запрос на сервер, который возвращает IP-адрес всех записей сервера и их соответствующих MAC-идентификаторов, которые он имеет в своей таблице (я предполагаю, что один сервер имеет несколько восстановленные копии)
  3. Затем клиент реализует трассировку для каждого из этих ip-адресов и сохраняет их в массиве в порядке увеличения количества переходов.
  4. Итерация по этому массиву и реализация arp для преобразования IP-адресов в MAC-идентификаторы. Затем сравните эти MAC-идентификаторы с теми, которые были получены с главного сервера на шаге 1. Если есть совпадение, то выбор сервера для подключения основан на количестве переходов + совпадение MAC-идентификаторов + метрика, которая обозначает нагрузку (число подключения к этому серверу в данный момент времени).

Мнения о том, как звучит эта идея, приветствуются.

1 Ответ

1 голос
/ 05 февраля 2010

Я не думаю, что распределение нагрузки может быть основано исключительно на количестве переходов. А зачем вам MAC-адреса? Если один сервер быстро доступен, но сильно занят, это может быть не лучшим выбором. Возможно, вы могли бы добавить службу на главный сервер, чтобы отслеживать количество клиентов для каждого сервера и использовать это в качестве критерия ... но это очень похоже на старое, простое и простое распределение нагрузки.

...