Как известно, NodeJS работает в одном процессе. Хоть это решение и очень быстрое, но и его может не хватить для того чтобы обработать нагрузку. Попробуем запустить несколько инстанций сервера. Для работы в кластере потребуется различать узлы. Не сильно задумываясь о реализации этой идеи, я решил назвать узлы женскими именами. Очень просто было найти список из одной тысячи английских женских имен. По этому поводу даже возникло несколько шуток: «максимальный размер кластера — тысяча узлов». Каждый узел будет получать данные о своих настройках и других узлах из базы данных mysql.
В продолжении цикла постов о создании собственного движка. Тема сегодняшнего поста довольно тривиальная - профиль пользователя. Блоги являются довольно эффективным способом наполнить контентом сайт, люди любят высказывать свое мнение другим. Но если обходится одними постами, то блоги получатся обезличенные - а это плохо. Поэтому создадим страницу пользователя, дадим ему возможность рассказать о себе.
Не стоит изобретать велосипед, изначально сделаем идентификаторы пользователя так же, как это сделано вконтакте. Это будет довольно хорошим тегом для идентификации пользователя. Для того чтобы перенаправить запрос на страницу пользователя нам подойдет регулярное выражение '^/id[0-9]{8}/?$'. Оно будет принимать запросы на страницу начинающуюся с префикса 'id' с последовательностью состоящей из 8 цифр. Для того чтобы реализовать возможность обращаться к профилю по логину и email пользователя, нам потребуется ключевое слово, иначе мы будем перебирать всю базу пользователей. То есть, мы не можем дать возможность напрямую обращаться странице пользователя вида 'http://host/login', поэтому добавим суффикс 'profile'. Запрос к этой странице можно обработать регулярным выражением '^/.*/profile/?'.
Сейчас сайт поддерживает публикацию материалов через сторонние программы. Этот пост я пишу с помошью BloGTK.
Реализована поддержка протокола metaWebLog, за исключением загрузки контента. Надеюсь завтра эта возможность появится.
Для того чтобы публиковать свои посты нужно настроить программу на адрес вида: http://gogoo.ru/(login)/xmlrpc
По традиции, выясним зачем нам это. Помимо структурирования статей в блог-движке, категории позволяют делать качественные посты. То есть, если пользователь не проставил свои теги для поста, то можно поставить мета-теги из категории. А можно эти две возможности совместить, что будет еще более удачным решением.
Что-же можно еще выжать из категорий? Ответом будет естественно дерево, или как его еще называют облако тегов. На самом деле это дерево категорий.
Помимо увеличения СTR, оно поднимает рейтинг в поисковой системе. Можно даже ассоциировать облако тэгов с картой сайта.
С отображением вроде всё понятно — это облако тэгов. Управление категориями — опишем основные моменты.
В первой части мы спланировали предполагаемый функционал.
Приступаем к реализации. Для начала сделаем минимальный функционал кеширования, а именно 2 функции — взятие объекта из кеша и сохранения его. Думаю не составит труда, для PHP сохранить и получить объект из memcached.
Осталось создать объект «живого эфира». Так как эта функция будет использоваться на этапе инициализации сервера, то реализуем ее в общей библиотеке. По сути это обычная выборка заголовков постов из базы отсортированная по дате публикации или идентификатору.
Следующая задача - отображение живого эфира. В зависимостот используемых средств реализуем этот функционал. У меня это не потребовалось, так как шаблонизатор разбирается сам с объектом типа массив.)))
Теперь нужно реализовать функционал изменения объекта «живого эфира». И опять же, тривиальная задача сводится к трем шагам: взять объект, в массив новую запись сдвинув другие элементы и сохранить в кэше.
КОНТАКТНАЯ ИНФОРМАЦИЯ
T. +7(391) 2-777-444
info@sangilen.ru
Адрес:
г.Красноярск,
ул. Давыдова, 66