У меня очень простой вопрос, я понимаю, что такое балансировка нагрузки и как она работает, однако я не могу визуализировать это на практике.

Допустим, у меня на сервере работает приложение AMP. Однажды трафик становится слишком большим, и я должен начать балансировать нагрузку, и я добавляю другой сервер. У меня уже есть все мои данные, хранящиеся на первом, так что бы я положил на этот сервер? Я мог бы скопировать файлы веб-сайта, но моя база данных все еще будет на первом сервере, и мне все равно придется подключаться к нему со своего нового сервера, так что это не кажется хорошим решением? Я мог бы добавить третий сервер и сделать его сервером MySQL и использовать его для хранения моих данных и подключения к нему моих серверов Apache, но это тоже не кажется хорошим решением, потому что у меня все равно будут запросы на получение данных от одно место.

Как это делается в реальности?

2 ответа2

1

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

Два сервера приложений должны быть подключены к одному источнику данных. Для этой цели вы можете использовать кластерную базу данных, которая довольно хорошо работает с MariaDB (бесплатно, с открытым исходным кодом и MySQL folk).

Надеюсь, что это ответ на ваш вопрос.

0

Там может быть ряд решений для вашего случая.
Во-первых - да, вы копируете весь каталог www на другой сервер с установленными apache и php точно такими же версиями, что и на первом узле. Если ваше приложение использует файловое хранилище, лучше всего разместить его на общем ресурсе - например, NFS или sshfs (на отдельном сервере). Если вы хотите разместить это хранилище файлов на обоих серверах приложений, то вам нужно синхронизировать их в режиме реального времени (не очень хорошее решение). NFS, созданная в SAN, в этом случае является наилучшей, поскольку у вас есть защита SAN и т.д.
Что касается базы данных - один сервер базы данных, отдельный от приложения, размещенный с достаточным объемом ОЗУ и дискового пространства, может обрабатывать множество соединений и множество запросов. Вам придется начать беспокоиться, если количество запросов в секунду достигнет тысяч. Но если вы достигнете этой точки, то решение, как уже предлагалось, кластер БД. Чтобы построить кластер, вам нужно как минимум 3 сервера баз данных и балансировщик нагрузки (прокси).
Итак, ваш набор будет состоять из:

  1. балансировщик нагрузки для веб-серверов
  2. минимум 2 сервера приложений / веб
  3. сервер базы данных
  4. файловый сервер (если требуется)

или, в случае кластера БД:

  1. балансировщик нагрузки для серверов баз данных
  2. 3 сервера баз данных в кластере

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .