суббота, 10 марта 2012 г.

Как устроенны сайты-гиганты.

Сегодня я постараюсь рассказать вам об устройстве сайтов гигантов, для тех кто этого не знает.
Во первых, как вы могли догадаться, сайты-миллионники располагаются не на одном сервере, а на многих. Вы спросите как такое возможно?
Есть такая технология как Web-гейт.
И даже гейт через DNS есть , то есть распределение через DNS.
Давайте разберём , как это работает на примере какого-либо домена.
У нас есть site.ru.
Представим себе, что у нас есть 10 гейт серверов, к примеру гейт1, гейт2, гейт3 итд , и много-много серверов , типа сервер1, севрер2, сервер3 итд.
Для начала информация о домене , к примеру site.ru
Лежит на неких DNS серверах, к примеру dns.site.ru dns1.site.ru итд.
Информация об этом хранится на главных - магистральных серверах , но об этом мы сейчас не будем.
На днс серверах указанно, куда "идти" клиенту.
Нынешние технлогии позволяют связать DNS севрер с сервером гейтом , чтобы DNS сервер мог перенаправить вас на какой либо сервер гейт, вернее не мог перенаправить , а перенаправил на тот, куда вам ближе и где меньше нагрузка.
Чаще всего сервера гейт с внутренними сервреами соединены локальной сетью, а не через сеть интернет.
Многие действительно крупные интернет проекты , такие как Фейсбук имеют свои ДЦ ( Датацентры).
Давайте разберём понятие гейт.
Вам знакомо понятие роутер?
Вот смотрите , вы обращаетесь не к конечному серверу, а к веб-гейту. это такое специальное приложение роутер.
К примеру база данных такого интернет-проекта лежит на нескольких компьютерах , вернее её копия.
Зачем это делается?
Это делается чтобы когда требуется запросить несколько пользователей , они могли запросится сразу со всех узлов.
То есть у нас есть 3 сервера бд
Сервербд1,сервербд2,сервербд3.
У нас одинаковая бд лежит на всех трёх серверах.
Но нам требуется обработать 10 запросов, и для клиента обработается быстрее там, где это быстрее сделать, то есть если сервербд2 ответит быстрее всех и обработает клиенту уйдут данные.
Но у вас появится вопрос, как же бд одинаковая если у всех серверов она работает по разному? А вот в этом то и есть работа гейт-сервера.
Он запоминает некое действие с бд и будет выполнять его к каждой бд для каждого сервера, только вот обработает кто быстрее, от того данные и уйдут.
На примере фейсбука, самая сложная задача это сообщения.
Вы спросите, если вас кинуло на разные гейты, как же по такой схеме получить быстрее всего сообщение?
Видите-ли, гейты тоже связанны между собой, и если юзер выполнил действие с сообщением , вероятно оно прийдёт вам напрямик с того гейта, с которого отправил вам его юзер , на тот гейт , на котором вы сейчас находитесь.
Это очень сложная схема
ДНС (Магистральный) - ДНС ( Уже у провайдера услуг ) - ГЕЙТЫ - Конечные сервера
Так же, в данной цепочке , могут присутствовать мини-гейты , между гейтами и конечными серверами, когда на 1 гейте требуется обработать большое кол-во информации.
Вы можете спросить, а зачем эти гейты, если все сервера могут обмениваться между собой информацией?
Это сделанно , чтобы можно было 1 запрос отправить к примеру на mysql.site.ru, а он уже автоматически продублировался для всех серверов, если этот дубляж сохранять не в своей подсети, могут возникнуть и возникнут трудности.
В общем вот такая сеть , встертимся в следующих обзорах.

Комментариев нет:

Отправить комментарий