Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Голосование

    Какую CMS Вы предпочитаете

    AtomX
    Fapos CMS
    Drunya CMS
Последние комментарии
Автор: чайник, в новости:

Что такое API и для чего они нужны

Автор: HIshnik, в новости:

Классы в PHP для чайников

Автор: Аноним, в новости:

Написание простого вируса в блокноте

Автор: stream, в новости:

Создаем BB коды на PHP

Топ пользователей
Drunya
Репутация: 108
Сообщений: 3527
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1858
BAH0
Репутация: 26
Сообщений: 544
Недавно мне пришлось заниматься распределением нагрузки между множеством серверов. Задача оказалась очень интересной и довольно простой, вопреки моим ожиданиям. И я решил поделиться опытом. В высоконагруженных проектах без распределения нагрузки не обойтись и я расскажу как ее реализовать. В данной статье мы рассмотрим пример реализации балансинга нагрузки при помощи DNS сервера.

Что можно отметить в данном типе реализации балансера? Есть как плюсы, так и минусы. К минусам можно отнести то, что такой подход предпологает абсолютно идентичные запросы. А в реальности, конечно же, не все запросы одинаковы. Какие то прожорливы к ресурсам, а другие нет. Но, в принципе, это сильно мешает. Разве вам убудет, если на одном из ваших серверов будет чуть больше нагрузки, чем на другом? За то, к плюсам подобного подхода к балансингу, можно отнести, простоту исполнения и конфигурирования.


Сам принцип работы очень прост. Нам понабится как минимум пара серверов и знание их 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

Теперь ДНС сервер будет возвращать IP адреса по очереди. Первому посетителю первый адрес, второму - второй, а третьему, сново, первый IP адрес. Как видите, ДНС сервер, почти все, делает сам:). И адресов на определенный домен может быть сколько угодно, а не только два, как в моем примере. У данного метода есть еще одно тостоинство - мы можем формировать наш файл зоны "на лету", например каким то скриптом. Например, скрипт может пинговать веб сервисы на серверах и проверять их работоспособность, а далее вносить в конфиг ДНС только те которые работают. Таким образом не посылая посетителей на упавший сервер. Даже более того, в следующей статье я расскажу и покажу, как это применить на практике.

С вами был Drunya. Благодарю за внимание:)
Балансинг нагрузки на сервера

Теги: DNS сервер; named server; ballansing; оптимизация проектов;
Источник: Drunya
Автор: Drunya
Категория: Общие терки
Просмотров: 2418
Комментариев: 4

Комментарии
  • User avatar

    POCT

    А когда выйдет след. статья по этой теме? Очень интересно...
    Дата отправления: 4 Авг 2011
  • User avatar

    Drunya

    Могу написать сразу как будет время. Сегодня-завтра напишу)
    Дата отправления: 4 Авг 2011
  • User avatar

    POCT

    Огромное спасибо!!!
    Дата отправления: 4 Авг 2011
  • User avatar

    Drunya

    Пожалуйста:) Обращайтесь.
    Дата отправления: 4 Авг 2011
Сейчас online: 17. Зарегистрированных: 0. Гостей: 17.
-->