2009-05-25 4 views
11
  1. Мой первый вопрос: я часто читаю о людях, использующих несколько выделенных серверов, для запуска своих сайтов и обработки запросов от пользователей. Но как они это делают? Я имею в виду, что когда я ввожу доменное имя, DNS разрешает карты, относящиеся к IP-адресу, но после этого я теряюсь .. есть какая-то архитектура ведущего/ведомого там, чтобы загружать баланс входящих запросов среди (потенциально) сотен серверы?Как работают несколько серверов для синхронизации веб-приложений?

  2. Если это так, как различные серверы используют общие данные (например, база данных)? Будут ли они подключены к одному жесткому диску?

ответ

5

ultramonkey даст вам хорошее описание того, как распределять нагрузку между многими серверами, так что вы видите 1 IP-адрес, но соединение получает направляется к одному из многих серверов (отказоустойчивость входит в комплект).

Если у вас нет веб-серверов, используя то же хранилище (общее хранилище может быть сложно, вы должны использовать SAN с «общей» файловой системы, как GFS или базы данных), то вы должны включить sticky sessions которые сказать маршрутизатор, который каждый клиент выберет сервер для связи в первый раз и сохранит его с этим сервером. Это менее отказоустойчиво (но в Интернете вам просто нужно обновить сломанное соединение для начала), но гораздо проще архитектор (и быстрее, поскольку каждый веб-сервер может оставаться независимым)

Другая проблема, Необходимость в действительно отказоустойчивой ситуации заключается в том, чтобы находить физические серверы далеко друг от друга, что повышает проблемы с производительностью для большинства проектов совместного использования (т. е. вы не можете поместить все свои серверы в SAN, если они находятся в разных странах), использовать подход с несколькими серверами, используя одно DNS-имя и регулярно реплицируя данные между ними. DNS load balancing, возможно, самый простой способ использования нескольких веб-серверов в качестве единого веб-сайта.

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

3

1) Вы можете использовать NLB (Network Load Balancing) - он будет использовать один и тот же IP-адрес для всех серверов в ферме http://en.wikipedia.org/wiki/Network_Load_Balancing_Services http://technet.microsoft.com/en-us/library/cc759510.aspx

2) SQL кластеризация для БД и общий файл хранения для данных не-Relation http://www.sql-server-performance.com/articles/clustering/clustering_intro_p1.aspx

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