2009-10-04 3 views
1

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

ответ

4

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

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

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

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

В случае EC2 вам ранее приходилось загружать баланс с циклическим DNS и/или HA Proxy. См. Introduction to Software Load Balancing with Amazon EC2. Но в течение некоторого времени Amazon запустила балансировку нагрузки и автомасштабирование (бета) в рамках своих предложений EC2. См. Elastic Load Balancing.

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

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

В случае EC2, вы может захотеть прочитать Amazon EC2 Instance Types.

+0

Спасибо Паскаль! – Drew

1

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

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

+0

Если вы считаете, что приложение может стать большим, рекомендуется начать с рамки, которую вы знаете, можете масштабировать до кластеров, даже если вы не воспользуетесь ею, чтобы начать с –

+0

Спасибо! Я пытался научиться этому материалу, как кто-то не с технической точки зрения, и вы, ребята, предоставили отличное объяснение. Спасибо. – Drew

1

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

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

+0

Спасибо, гнибблер! Внимательно оцените краткое руководство по этому вопросу. Спасибо. – Drew

3

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

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

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

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

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

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

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

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

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