Pull to refresh

тезисы к докладу «практическое использование noSQL»

Reading time 2 min
Views 831
Подготовил тезисы к DevConf


Одно из распространенных архитектурных решений WEB приложений, рассчитанных на высокие нагрузки, предполагает горизонтальное масштабирование или его еще называют ш
ардинг. Шардинг, как правило, осуществляется по номеру пользователя user_id. При такой архитектуре, при прохождении процедуры авторизации Пользователя, необходимо просконировать на предмет нахождения данных Пользователя все БД (шарды). А это крайне не эффективно. Соответственно встает вопрос о «центральном хранилище информации», которым может быть быстрая key/value БД. Далее в докладе будут более детально рассмотрены схемы использования, достоинста и недостатки, протокол обмена memcachedb.

Иногда проект разрастается и в нашем кластере появляется несколько проектов, каждый со своей БД, с разными доменными именами, например: myproject.ru, myproject.ua, myproject.me, myproject.tv. И мы хотим объединить их логически и сделать единую авторизацию. Схема единой авторизации похожа на схему с шардингом, нужно единое хранилище данных для авторизации пользователей. В качестве такого хранилища предлагается использовать редис. Далее в докладе будет рассмотрена схема sso с единым хранилищем данных на редисе, протокол редиса, его возможности, будут упомянуты клиенты на РНР и какие могут возникнуть проблемы.
Далее будет рассмотрено использование редиса в качестве использования справочника на примере скрипта автодополнения (списки редиса).

Все высоконагруженные системы строются таким образом, чтоб контент отдавался максимально быстро. По этому, большинство задач подготавливает данные в бэдграунде (в фоновом режиме). Для передачи информации от фронт-энда бэдграундовским задачам используются очереди. Эффективно использовать очереди специальными серверами. Одним из самых производительных серверов является memcacheq. Далее рассматривается схема конвертации фото/видео контента с использованием memcacheq.

Сервера очередей эффективно использовать в распределенных системах, которые на сегодняшний день представляют многие крупные WEB проекты. Если нужен распределенный сервер очередей, или нужна некоторая логика при обработки сообщений, то предлагается использовать RabbitMQ, который осуществляет обмен по протоколу AMQP (Advansed Message Query Protocol). Далее будет небольшой экскурс по протоколу AMQP, описаны практические схемы использования RabbitMQ: чат, лента друзей, эфир, подписка на новости. Рассказаны сильные и слабые стороны RabbitMQ. Обзор PHP клиентов.
В семействе noSQL есть объектные или документные Базы данных. Они содержат объекты данных. Одной из таких БД является MongoDB. Объекты в БД хранятся в формате BSON — это бинарный JSON. Данный тип БД характерен высокими показателями вставки/извлечения данных. Объектные БД по функциональности не уступают RMDB. В даном докладе будет описан опыт использования MongoDB при построение цепочек друзей ( онлайн поиск пересечения кругов друзей ). Пример цепочки друзей: Вася Пупки — Игорь Шапкин — Муся Ибрагимов — Игорь Херувимов. обзор PHP & MongoDB.

если останется время, то расскажу про опыт использования native-XML DB Sedna в проекте tradebox.ru.

С удовольствием учту все ваши пожелания при подготовке к докладу.
Tags:
Hubs:
-1
Comments 3
Comments Comments 3

Articles