Распределенная избыточность сервера сайта

353
Keith Lion

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

Правильно ли я считаю, что, хотя существуют все эти дополнительные веб-серверы для обработки нескольких клиентских запросов, все еще существует одна «машина», в которую должны войти пользователи? Я предполагаю, что эта машина будет физически связана с IP-адресом?

Я спрашиваю, потому что мне нужно знать, есть ли в местах, где существуют распределенные системы, единственная точка отказа - обычно это узел управления или, в этом примере, машина, подключенная к общедоступному Интернету? Конечно, не может быть две машины, подключенные к Интернету, так как они должны иметь разные IP-адреса?

Эта «машина» может не являться сервером как таковой, но, возможно, это часть оборудования Cisco. Мне просто нужно знать, есть ли в реальном мире в этих распределенных системах определенный раздел, в котором они зависят от целостности одного электронного устройства?

1
It is certainly possible to build systems where there is no single point of failure. This is often expensive, and many of the techniques to accomplish this require some pretty complex configuration. Zoredache 12 лет назад 0
http://en.wikipedia.org/wiki/Round_robin_dns http://en.wikipedia.org/wiki/Anycast Zoredache 12 лет назад 0

4 ответа на вопрос

1
Scott Chamberlain

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

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

1
Darth Android

Чтобы ответить на ваш вопрос, Нет, вы можете построить инфраструктуру сайта без единой точки отказа.

Циклическая перестановка DNS позволяет связать несколько IP-адресов с одним доменным именем; каждый из этих внешних интерфейсов может, в свою очередь, взаимодействовать с кластерными внутренними системами, благодаря чему существует несколько независимых копий баз данных, которые постоянно синхронизируются.

Джефф Этвуд на самом деле писал о работе Netflix, направленной на то, чтобы сделать их систему невосприимчивой к отдельным точкам отказа, включая демона, который случайным образом отключает службы / экземпляры, которые они используют для тестирования.

1
RedGrittyBrick

Некоторые примеры:

Сделайте веб-сайт доступным с помощью IP Failover, Heartbeat и Pacemaker в Ubuntu 9.10 (Karmic)

Microsoft Cluster Server (MSCS) предоставляет возможность определять ресурс IP-адреса в кластере и переключать его с одного узла на другой.

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

0
Mike Scott

Может быть (и часто бывает) несколько разных IP-адресов, связанных с одним доменным именем. Например, google.com в настоящее время разрешает (для меня):

Name: google.com Address: 173.194.34.129 Name: google.com Address: 173.194.34.130 Name: google.com Address: 173.194.34.131 Name: google.com Address: 173.194.34.132 Name: google.com Address: 173.194.34.133 Name: google.com Address: 173.194.34.134 Name: google.com Address: 173.194.34.135 Name: google.com Address: 173.194.34.136 Name: google.com Address: 173.194.34.137 Name: google.com Address: 173.194.34.142 Name: google.com Address: 173.194.34.128 

Поведение веб-браузера варьируется, но обычно он пытается один IP-адрес в случайном порядке, и переходит на другой, если он не получает ответа от первого. Так что здесь нет единой точки отказа.