Связь между несколькими серверами - PullRequest
5 голосов
/ 07 мая 2010

Как сеть серверов может общаться друг с другом?

Например, если Клиент A подключается к Серверу A , как другие серверы будут проинформированы об этом? Я предполагаю, что вам нужен "центральный" сервер, но как он будет реализован?

Я действительно ошеломлен этим, поэтому любая помощь будет хорошей:)

Ответы [ 4 ]

4 голосов
/ 07 мая 2010

Одна из точек распределенных систем заключается в том, что серверам не нужно знать о действиях друг друга. Сервер A и сервер B могут быть серверами переднего плана, даже если они совместно используют одну и ту же базу данных и могут работать независимо друг от друга. «Центральный сервер», на который вы ссылаетесь, будет базой данных, которая может физически находиться на третьем компьютере, либо на сервере А или сервере Б.

1 голос
/ 07 мая 2010

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

0 голосов
/ 07 мая 2010

Если серверы находятся в одной подсети и вы используете IPv4, может быть, вы могли бы перевести карты Ethernet в беспорядочный режим? Они будут видеть трафик к клиенту А / серверу А и от него. Но это открывает целую банку червей, которую вы, вероятно, не хотите открывать (безопасность, конфиденциальность и т. Д.). Возможно, более жизнеспособным решением было бы предоставить им общую базу данных. Каждый сервер обновляет базу данных при обработке соединения и периодически опрашивает базу данных, чтобы узнать, какие другие соединения обрабатываются.

0 голосов
/ 07 мая 2010

Другие серверы не будут знать об этом сообщении, если они специально не спросят об этом client1 или server1 - если серверы время от времени запрашивают друг у друга текущий список клиентов. Если все серверы совместно используют одну и ту же базу данных, то, возможно, они могут посмотреть на нее, чтобы увидеть текущую активность, но обычно они не будут знать об обмене информацией, который их не затрагивает.

Чего ты хочешь достичь или тебе просто любопытно?

...