Разработка проектов с большой нагрузкой

GreatWeb

Guest
Разработка проектов с большой нагрузкой

Есть проект с большой нагрузкой, к примеру, возьмем баннерую сеть. Есть несколько серваков, нужно сделать, чтобы если 1ый сильно загружен, то обращаться ко второму и т.д. Как это обычно делают? Как быть с базой? Она, по-идее, должна быть одна, но как ее хранить, чтобы свободный сервер обрабатывал...
Поделитесь опытом...
 

untied

Сдвинутый новичок
Ну, про разделение http-запросов между серверами ничего не могу сказать (самому интересно послушать), а вот с базой никаких проблем не должно быть.

К примеру, в mysql_connect() нужно указать сетевое имя сервера базы. Это уж так повелось, что обычно там пишется localhost, но это совсем не обязательно. Главное, чтобы веб-сервер мог установить по сети соединение с сервером БД.

-~{}~ 26.01.05 19:57:

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

Положим, у тебя есть несколько сайтов, на которых крутится один и тот же баннерный движок:

www1.banners.ru
www2.banners.ru
www3.banners.ru

Все движки обращаются к одной базе данных, расположенной на отдельном сервере.

Код баннера вставляется на страницу обычно SSI-вставкой
<!-- #include virtual="..."-->
(вариант с кодом на JavaScript тоже подойдет!)

Ну и вот. Нужно генерировать адрес загрузки картинки и адрес перехода по "клику" случайным образом, выбирая сервер из возможных: www1.* www2.* www3.*
Соответственно, если вероятность случайного выбора веб-сервера будет всегда одинаковая для всех серверов, то нагрузка будет равномерно распределяться между всеми серверами. :cool:

Это было решение для баннерной сети.
А вот для того, чтобы распередлить загрузку одного сайта между несколькими серверами, как мне представляется, нужно какое-то аппаратное устройство. Оно будет принимать входящий http-траффик и случайным образом перенаправлять его на один из подключенных реальных веб-серверов. Вопрос синхронизации всех серверов -- тоже отдельная тема для обсуждения.
Но это, наверное, лучше у администрации Яндекса какого-нибудь поинтересоваться, как там все устроено. :D
 

MiRacLe

просто Чудо
Frol , что ты на человека прям так сразу накинулся, он не в курсе что "мы не решаем хардварные проблемы,софтварным способом" (с)

к тому же он придумал это задолго до того как придумали DNS, кластеры и тому подобную чушь... отужинал и сразу придумал.... к тому же Гугл, тогда ещё(до ужина) ещё не существовал...

Схемы балансировки нагрузки для web-серверов
 

GreatWeb

Guest
MiRacLe
thx

Frol
согласен :)

Кто-то работал с mod_backhand?
http://www.backhand.org/mod_backhand/
По описанию то, что нужно...
 
Сверху