Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемiforum.kiev.ua
1 Разработка высоконагруженных проектов, Что нового? Олег Бунин
2 Тенденции 2010 года 1.Облачная инфраструктура; 2.NoSQL базы данных; 3.Новые языки, Erlang; 4.nginx в железе.
3 Практический пример NoSQL в высоконагруженном проекте
4 Модели данных Реляционная модель: данные в базе данных представляют собой набор отношений; Иерархическая модель: база данных состоит из объектов с указанием отношений родитель ребенок; Сетевая модель: база данных со структурой в виде графа; Объектно-ориентированная модель: база данных, в которой данные представлены в виде моделей объектов.
5 Разработка чата
6 Постановка задачи Около десяти тысяч одновременных подключений; Доставка сообщения в реальном времени (чат); Сохранение истории сообщений (переписка); Одновременная переписка с несколькими участниками.
7 Обычная схема
8 Вопросы к обычной схеме Кэширование переписок в memcached Устаревание кэша Чистка кэша Кэширование переписок Конкурентное обновление Обновление информации Только эмуляция – опрос сервера каждую секунду Мгновенная доставка
9 Мгновенность доставки Как нам сообщать клиенту о том, что пришло сообщение? Нам нужен event-driven!
10 Event-driven Нам нужно сообщать в реальном времени клиенту о новых сообщениях! Мгновенную доставку можно решить некоей имитацией длинных незакрытых соединений (WebSockets, FlashSocket, AJAX Long polling, Iframe).
11 Event-driven чат Каждый новый клиент, входящий в переписку устанавливает соединение с одним из «быстрых» серверов (phpDaemon или Node.js) и от него же будет получать сообщения. При отправке на основной сервер нового сообщения, оно записывается в постоянную базу данных (MySQL), а так же в некую «быструю» базу данных (в данном случае MongoDB), где будет храниться только актуальная переписка, например за последние сутки. Master MongoDB записывает изменения в коллекцию local.oplog.$main для репликации. «Быстрые сервера» в это время ведут опрос «быстрой» базы на предмет наличия в ней новых сообщений, и, если такие есть, отправляют их тому клиенту, которому они адресованы.
12 Event-driven чат
13 Тестирование скоростей
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.