Когда вам понадобится несколько серверов для размещения одного веб-приложения? - PullRequest
1 голос
/ 04 октября 2009

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

Ответы [ 4 ]

4 голосов
/ 04 октября 2009

[...] Это называется «кластеризация» серверов?

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

Когда отправляется веб-запрос, проходит ли он через главный сервер, и если главный сервер не может справиться с дополнительной нагрузкой, то он перенаправляет его на вторичные серверы, которые могут справиться с нагрузкой?

В общем, это работа выделенного компонента, называемого «балансировщик нагрузки» (аппаратное и программное обеспечение), который может использовать множество алгоритмов для балансировки запроса: циклический перебор, FIFO, LIFO, на основе нагрузки ...

В случае EC2 вам ранее приходилось балансировать нагрузку с циклическим DNS и / или HA Proxy . См. Введение в балансировку нагрузки программного обеспечения с помощью Amazon EC2 . Но в течение некоторого времени Amazon запустила балансировку нагрузки и автоматическое масштабирование (бета) как часть своих предложений EC2. См. Упругая балансировка нагрузки .

Кроме того, один «сервер», который работает и работает, называется «экземпляром»?

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

В случае EC2 вы можете прочитать Типы экземпляров Amazon EC2 .

3 голосов
/ 04 октября 2009

Вот реальный пример:

Эта конкретная конфигурация размещена на RackSpace в их группе Managed Colo.

Запросы проходят через межсетевой экран Cisco. Затем они направляются через гигабитную локальную сеть на коммутатор служб контента Cisco CSS 11501 (например, балансировщик нагрузки). Балансировщик нагрузки сопоставляет входящее содержимое с правилом содержимого, при необходимости обрабатывает расшифровку SSL, а затем перенаправляет трафик на один из нескольких внутренних веб-серверов.

Каждые 5 секунд балансировщик нагрузки запрашивает URL-адрес на каждом веб-сервере. Если веб-серверу не удается (два раза подряд, IIRC) ответить правильным значением, этому серверу не отправляется трафик, пока URL-адрес не начнет отвечать правильно.

Далее за веб-серверами находится конфигурация MySQL master / slave. Соединения могут быть повреждены для ведущего (для транзакций) или подчиненных для запросов только для чтения.

Memcached установлен на каждом из веб-серверов с 1 ГБ оперативной памяти, выделенной для кэширования. Каждое веб-приложение может использовать кластер серверов memcache для кэширования всех видов контента.

Развертывание выполняется с помощью rsync для синхронизации определенных каталогов на сервере управления с каждым веб-сервером. Перезапуски Apache и т. Д. Обрабатываются с помощью аналогичных сценариев поверх ssh с сервера управления.

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

1 голос
/ 04 октября 2009

Да, это может потребоваться для кластеризации. Обычно, когда нагрузка возрастает, вы можете столкнуться с внешним сервером, который выполняет перезапись URL, https, если требуется, и кеширование с помощью squid. Запросы передаются на несколько внутренних серверов - возможно, с помощью файлов cookie, чтобы при необходимости связать сеанс с определенным внутренним сервером. Возможно, у вас также есть база данных на отдельном сервере.

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

1 голос
/ 04 октября 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...