Разработка высоконагруженных проектов, Что нового? Олег Бунин.

Презентация:



Advertisements
Похожие презентации
Разработка высоконагруженных проектов (например – сайтов для сообществ) Олег Бунин.
Advertisements

Учебник по построению высоконагруженных систем Олег Бунин.
БАЗЫ ДАННЫХ. ТИПЫ ПОЛЕЙ СВОЙСТВА ПОЛЕЙ РЕЛЯЦИОННАЯ БАЗА ДАННЫХ.
Разработка высоконагруженных проектов Олег Бунин.
ИНФОРМАЦИОННЫЕ РЕСУРСЫ И СЕРВИСЫ ИНТЕРНЕТА КОММУНИКАЦИОННЫЕ ТЕХНОЛОГИИ.
Классификация моделей Лучший способ избавиться от проблемы – это решить её.
Нагрузочное тестирование как способ снижения рисков Олег Бунин.
Архитектура новой почты Рамблера Андрей Шетухин. Rambler Mail сегодня 240 тысяч новых регистраций в день 66 миллионов пользователей 20 миллионов живых.
Типы информационных моделей. Информационные модели отражают различные типы систем объектов, в которых реализуются различные структуры взаимодействия и.
BigData изнутри: технологии и алгоритмы Александр Сербул руководитель направления, разработчик Партнерская конференция «1С-Битрикс»
Базы данных Основные определения и понятия. Основные понятия: База данных реляционных База данных – совокупность информа- ции, хранение которой организовано.
Наиболее популярные ресурсы Интернета это Всемирная паутина Электронная почта Файловые архивы Общение в Интернете Мобильный Интернет.
Электронная почта, телеконференции, обмен файлами Почта - традиционные средства связи, позволяющие обмениваться информацией, по крайней мере, двум абонентам.
Основные понятия и определения Различные модели данных.
Аспекты увеличения быстродействия «1С-Битрикс: Управление сайтом» на виртуальном хостинге Артём Рябинков 1С-Битрикс.
Назначение и струкутура сети Интернет Компьютерные телекоммуникации.
Базы данных Реляционная база данных MS Access. Повторение База данных организованная совокупность данных из какой-либо предметной области, предназначенная.
CMS и хостинг Докладчик: Константин Малов Компания : Хостинг-Центр РБК.
Система управления базами данных MS Access. Виды БД Иерархическая БД– отображает взаимосвязь информационных объектов по уровням подчиненности. Иерархическая.
Внешний документооборот с контрагентами. 2 Зачем нужно автоматизировать обмен документами Переход к электронному документообороту. Сокращение действий,
Транксрипт:

Разработка высоконагруженных проектов, Что нового? Олег Бунин

Тенденции 2010 года 1.Облачная инфраструктура; 2.NoSQL базы данных; 3.Новые языки, Erlang; 4.nginx в железе.

Практический пример NoSQL в высоконагруженном проекте

Модели данных Реляционная модель: данные в базе данных представляют собой набор отношений; Иерархическая модель: база данных состоит из объектов с указанием отношений родитель ребенок; Сетевая модель: база данных со структурой в виде графа; Объектно-ориентированная модель: база данных, в которой данные представлены в виде моделей объектов.

Разработка чата

Постановка задачи Около десяти тысяч одновременных подключений; Доставка сообщения в реальном времени (чат); Сохранение истории сообщений (переписка); Одновременная переписка с несколькими участниками.

Обычная схема

Вопросы к обычной схеме Кэширование переписок в memcached Устаревание кэша Чистка кэша Кэширование переписок Конкурентное обновление Обновление информации Только эмуляция – опрос сервера каждую секунду Мгновенная доставка

Мгновенность доставки Как нам сообщать клиенту о том, что пришло сообщение? Нам нужен event-driven!

Event-driven Нам нужно сообщать в реальном времени клиенту о новых сообщениях! Мгновенную доставку можно решить некоей имитацией длинных незакрытых соединений (WebSockets, FlashSocket, AJAX Long polling, Iframe).

Event-driven чат Каждый новый клиент, входящий в переписку устанавливает соединение с одним из «быстрых» серверов (phpDaemon или Node.js) и от него же будет получать сообщения. При отправке на основной сервер нового сообщения, оно записывается в постоянную базу данных (MySQL), а так же в некую «быструю» базу данных (в данном случае MongoDB), где будет храниться только актуальная переписка, например за последние сутки. Master MongoDB записывает изменения в коллекцию local.oplog.$main для репликации. «Быстрые сервера» в это время ведут опрос «быстрой» базы на предмет наличия в ней новых сообщений, и, если такие есть, отправляют их тому клиенту, которому они адресованы.

Event-driven чат

Тестирование скоростей