Голосование
Какую CMS Вы предпочитаете
AtomX
Fapos CMS
Drunya CMS
Топ новостей
- Генератор аватарок в стиле пиксель-арт
- Скачать Fapos CMS 1.1.8 Бесплатно
- Цунами в Японии. Последствия.
- Предварительная инфа о FAPOS 1.1.9. Часть 2
- Описание версии CMS Fapos 0.9.9
- Новая версия Fapos 1.3
- Половина россиян не смогла отличить легальный контент
- Что есть Fapos CMS
- Убийца Apache у вас на пороге
- Открытое тестирование Fapos 0.9.9
Последние комментарии
Топ пользователей
Сайты на AtomX CMS
Недавно мне пришлось заниматься распределением нагрузки между множеством серверов. Задача оказалась очень интересной и довольно простой, вопреки моим ожиданиям. И я решил поделиться опытом. В высоконагруженных проектах без распределения нагрузки не обойтись и я расскажу как ее реализовать. В данной статье мы рассмотрим пример реализации балансинга нагрузки при помощи DNS сервера.
Что можно отметить в данном типе реализации балансера? Есть как плюсы, так и минусы. К минусам можно отнести то, что такой подход предпологает абсолютно идентичные запросы. А в реальности, конечно же, не все запросы одинаковы. Какие то прожорливы к ресурсам, а другие нет. Но, в принципе, это сильно мешает. Разве вам убудет, если на одном из ваших серверов будет чуть больше нагрузки, чем на другом? За то, к плюсам подобного подхода к балансингу, можно отнести, простоту исполнения и конфигурирования.
Сам принцип работы очень прост. Нам понабится как минимум пара серверов и знание их IP адрессов, собственный DNS сервер, например named и доступ к его файлу нужной зоны и сам домен. Работать это будет следующим образом: клиент запрашивает адрес, расположенный на нашем домне, так как ДНС у домена будет нашим, наш ДНС сервер вернет нужный IP адрес(либо первого сервера, либо второго), запрос обработается этим сервером(чей IP вернул DNS) и вернется клиенту. Во всей этой цепи, нас интересует именно ДНС сервер. Почему? По тому, что именно тут мы будем делать подмену IP адресов. Точнее мы будем отдавать IP адрес каждого из нашихсерверов по очереди. Если у нас есть сервер "1" и "2", раздача IP адресов будет идти в таком порядке: 1, 2, 1, 2 ... Вот такой вот примитивный, но весьма работоспособный вариант. Дальше более конкретно.
В файлах зоны named сервера, соотношение имени и IP адреса выглядит следующим образом
Это говорит о том, что запросив адрес vasyapupkin.ru, вы попадете по IP адресу 111.111.111.111. Все довольно просто. Так вот суть самого балансера заключается в том, что мы просто добавляем IP адреса к нужному домену на нашем ДНС сервере. Например так:
Теперь ДНС сервер будет возвращать IP адреса по очереди. Первому посетителю первый адрес, второму - второй, а третьему, сново, первый IP адрес. Как видите, ДНС сервер, почти все, делает сам. И адресов на определенный домен может быть сколько угодно, а не только два, как в моем примере. У данного метода есть еще одно тостоинство - мы можем формировать наш файл зоны "на лету", например каким то скриптом. Например, скрипт может пинговать веб сервисы на серверах и проверять их работоспособность, а далее вносить в конфиг ДНС только те которые работают. Таким образом не посылая посетителей на упавший сервер. Даже более того, в следующей статье я расскажу и покажу, как это применить на практике.
С вами был Drunya. Благодарю за внимание
Что можно отметить в данном типе реализации балансера? Есть как плюсы, так и минусы. К минусам можно отнести то, что такой подход предпологает абсолютно идентичные запросы. А в реальности, конечно же, не все запросы одинаковы. Какие то прожорливы к ресурсам, а другие нет. Но, в принципе, это сильно мешает. Разве вам убудет, если на одном из ваших серверов будет чуть больше нагрузки, чем на другом? За то, к плюсам подобного подхода к балансингу, можно отнести, простоту исполнения и конфигурирования.
Сам принцип работы очень прост. Нам понабится как минимум пара серверов и знание их IP адрессов, собственный DNS сервер, например named и доступ к его файлу нужной зоны и сам домен. Работать это будет следующим образом: клиент запрашивает адрес, расположенный на нашем домне, так как ДНС у домена будет нашим, наш ДНС сервер вернет нужный IP адрес(либо первого сервера, либо второго), запрос обработается этим сервером(чей IP вернул DNS) и вернется клиенту. Во всей этой цепи, нас интересует именно ДНС сервер. Почему? По тому, что именно тут мы будем делать подмену IP адресов. Точнее мы будем отдавать IP адрес каждого из нашихсерверов по очереди. Если у нас есть сервер "1" и "2", раздача IP адресов будет идти в таком порядке: 1, 2, 1, 2 ... Вот такой вот примитивный, но весьма работоспособный вариант. Дальше более конкретно.
В файлах зоны named сервера, соотношение имени и IP адреса выглядит следующим образом
Code:
vasyapupkin.ru 600 IN A 111.111.111.111
Это говорит о том, что запросив адрес vasyapupkin.ru, вы попадете по IP адресу 111.111.111.111. Все довольно просто. Так вот суть самого балансера заключается в том, что мы просто добавляем IP адреса к нужному домену на нашем ДНС сервере. Например так:
Code:
vasyapupkin.ru 600 IN A 111.111.111.111
vasyapupkin.ru 600 IN A 222.111.111.111
vasyapupkin.ru 600 IN A 222.111.111.111
Теперь ДНС сервер будет возвращать IP адреса по очереди. Первому посетителю первый адрес, второму - второй, а третьему, сново, первый IP адрес. Как видите, ДНС сервер, почти все, делает сам. И адресов на определенный домен может быть сколько угодно, а не только два, как в моем примере. У данного метода есть еще одно тостоинство - мы можем формировать наш файл зоны "на лету", например каким то скриптом. Например, скрипт может пинговать веб сервисы на серверах и проверять их работоспособность, а далее вносить в конфиг ДНС только те которые работают. Таким образом не посылая посетителей на упавший сервер. Даже более того, в следующей статье я расскажу и покажу, как это применить на практике.
С вами был Drunya. Благодарю за внимание
Балансинг нагрузки на сервера
Теги: DNS сервер; named server; ballansing; оптимизация проектов;
Источник: Drunya
Теги: DNS сервер; named server; ballansing; оптимизация проектов;
Источник: Drunya
Комментарии
-
POCT
А когда выйдет след. статья по этой теме? Очень интересно...Дата отправления: 4 Авг 2011 -
Drunya
Могу написать сразу как будет время. Сегодня-завтра напишу)Дата отправления: 4 Авг 2011 -
POCT
Огромное спасибо!!!Дата отправления: 4 Авг 2011 -
Drunya
Пожалуйста Обращайтесь.Дата отправления: 4 Авг 2011
Сейчас online: 46. Зарегистрированных: 0. Гостей: 46.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Программирование - что может быть проще.
Программирование - что может быть проще.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Написание простого вируса в блокноте
Что такое API и для чего они нужны
Классы в PHP для чайников
Написание простого вируса в блокноте