Для начала я немного расскажу о себе и сделаю небольшое вступление:
Я достаточно давно занимаюсь форумами. У меня плоховато с PHP и я не могу сам писать моды для ExBB по этому и пишу в этой ветке чтоб поделиться своей идеей с теми кто это написать может.
Итак, у меня есть несколько своих форумов. Все на IBP 2.1.7 и все лицензинные. Все естественно на мускульной тяге. Самый крутный мой форум примерно в 3-4 раза больше этого форума и в сутки его посещают около 10к уникальных пользователей. Форум расположен на отдельном сервере и вместе с файловым архивом весит около 30-40 гигов. По этому я считаю, что могу рассуждать о форумах большого размера.
Так же за время работы моего форума случалить проблемы с ддосом и я знаю что такое когда неделю хостер перезапускает сервак раз в 30 минут

Время шло и у меня возникла потребность в небольшом и простом форуме. Мне было очень лень возиться с платными хостингами, мускулом и прочем и по этому я просто нашел фулл мод ExBB и решил попробывать его. Сначала на локалке а потом и нескольких фришных хостах. Небольшое релическое отступление, но я оказался очень доволен форумным движком, техподдержкой, вашим форумом и прочим и достаточно сильно поменял совое мнение о форумах на файлах как об игрушке для ламеров. В процессе своей работы над своим форумом я много бы на вашем форуме, много читал и узнал много интересного. И чем больше я тут читал тем тем чаще ко мне возвращалась идея кластеризации форума так как из всего что я знаю о движках форумов ExBB оказывался саым благодарным донором для данного мероприятия...
А теперь собственно идея:
Во первых что такое кластеры: кластер это единичный элемент сложной системы отличительной особенностью которой является то, что выпадение одного кластера из системы не останавливает ее работу в целом. На каждом элементе кластера происходит работа над своим локальном участком и в случае необходимости любой кластер может заменить собой другой.
На вашем форуме есть такая вот тема: какой размер вашего форума?. Думаю все ее читали (блин, не сомг найти линк) и из той темы ясно видно, что форум размером с этот вполне укладывается в 100 мб. не стичая аттачей, файлов и прочего, что не влияет на работу самого форума. Но в то же время есть много тем наподобии этой, этой и особенно этой. Собственно из всего этого ясно видно, что разместить форум вполне возможно на любом фри хостинге но при этом из-за проблем с нагрузкой на CPU возникает куча проблем с множественным обращением к одному файлу (как раз минус форума на файлах перед форумом на БД)
Теперь как мы решаем эту проблему (для простоты решения берем форум установленны с нуля и без тем и веток):
(Добавление)
1) Для начала нам нужно 2 предположительно платных хостинга, первый размером 100-250 метров по необходимости для размещения самого форума и второй для размещения файлов (в нете есть куча планов у хостеров где продается за копейки просто дисковое пространство без скриптов и прочего, только для хранения файлов с ФТП доступом). Кроме этого нам надо по необходимости сколько угодно фришных (ну или платных) хостов для кластеров основного сайта.
2) Устанавливаем на головной хост форум, все настраиваем. Потом на дополнительных хостах делаем полностью идентичные зеркала
3) А вот теперь нам как раз и нужен мод кластеризации и вот что он должен уметь поскриптно (причем при желании в нете можно найти готовые скрипты по раздельности и задача то в общем собрать их вместе и сделать мод под ExBB)
Самый первый скрипт должен делать всего 2 простые вещи: тусовать запросы по всем заркалам и скрывать при этом заголовки старниц на кластерных копиях форума. Тоесть когда человек набирает адрес форума, он попадает на главный сайт, а в последствии, при навигации по сайту он в произвольном порядке "тусуется" по всем серверам при каждом запросе и при этом адрес в строке браузера соответствует адресу по которому человек пришел. Данный скрипт рабоет одновременно на каждой кластере форума и еще до обработки запроса он решает на какой сервер его послать или вообще никуда не посылать а обработать на себе. Тоесть таким образом мы добьемся того, что при множественном запросе к одному файлу на форуме или ддос-атаке запросы будут распределены случайным образом по разным кластерам. Соответственно в зависимости от желания кластеров на том же холме или другом фришном хосте можно сдеать и сотню и тысячу и нагрузка на каждый конкретный хост будет минимальна Кроме того, если скрипт будет пере пересылкой запроса проверять доступность хоста то все перегруженные хосты будут сразу исключены.
Второй срипт, можно сказать изюминка мода, так же установлен на всех кластерах и занимается только тем, что при малейшем изменении любого файла на форуме (топик, просмотр темы, новый пост) кроме разумеется файла поиска который очень большой по размеру, будет рассылать другим кластерам его копию. Учитывая минимальные размеры конкретного файла трафика это будет заменять немного. А скриптов доступа от ФТП к ФТП простовеликое множество. Этот скрипт как раз и будет синхронизировать все кластеры тоесть делать то, что на любом форуме с БД практически невозможно. Нет, конечно можно синхронизировать в реальном времени сотню баз по 100 мб размером, но... Думаю все и так понятно, делаем из минуса форума на файлах его боооольшой плюс, тоесть легкость синхронизации пусть и множества, но МАЛЕНЬКИХ файлов.
Ну и тертий скрипт как раз и делает то, из за чего данная система будет являться иенно кластерной а не зеркальной. В самом начале описания поговри о втором платном хосте для хранения файлов. При установке ExBB в нем есть некоторый набор фойлов, они есть в каждой копии сайта, на каждом кластере. Но если при изменении аватара, создании архива файлов или аттачивании файлов рассылать копии по всем кластерам, то это будет не гут потому что во первых для каждого кластера нужно будет много места на диске и синхронизация например файла в 2 мегабайта по 100 кластерам скушает достаточно много трафа. Не говоря уже о том, что на многих фри хостах где по идее и будут висеть кластеры есть ограничения на размер файла и это вызовет дополнительные проблемы. По этому данный скрипт будет помещать файлы загруженные пользователями, файловуй архив и аватары на хост-хранилище файлов а на форуме будут автоматом меняться линки. Причем с учетом второго скрипта достаточно будет чтою на любом кластере в любой теме появился аттач, чтоб правильный линк на него появился на всех кластерах.
Собранные в один мод все эти скрипты позволят сделать сайт с возможностью развития до любого размера и при этом будет минимален по затратам. Конечно, есть еще сложности, например администрирование не все можно будет делать с одного кластера, некоторые вещи придеться делать на всех хостах, или обновления тоже придеться делать везде. Да и счетчики кроме майл.ру не воспримут такую систем как один сайт... Но не может же быть просто куча плюсов без минусов


Так что я жду комментариев гуру сайта и возможно подобного мода

С уважением, Lift