28
Интеграция открытых технологий и взаимодействие со сторонними проектами в условиях высоких нагрузок. ВКонтакте

Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Интеграция открытых технологий и взаимодействие со сторонними проектами

в условиях высоких нагрузок. 

ВКонтакте

Page 2: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

XMPP сервер:

- реализация протокола

- интеграция с ВКонтакте

ВКонтакте

Page 3: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

XMPP сервер:

- реализация протокола

- интеграция с ВКонтакте

ВКонтакте

(только основной протокол)

(необходимо полностью интегрировать контакт лист, систему сообщений и  предусмотреть кеширование)

Page 4: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Нужна была платформа:- Язык высокого уровня- Высокая скорость- Неблокирующий I/O- Наличие инфраструктуры

ВКонтакте

Page 5: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

node.js+ Язык высокого уровня+ Высокая скорость+ Неблокирующий I/O+ Наличие инфраструктуры

ВКонтакте

Page 6: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Нагрузка- большие контакт листы +- высокая активность online/offline +- автарки (base64) ++- интеграция с ЛС ++

ВКонтакте

Page 7: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Цифры:60000 ~ 80000 пользователей onlineпик - 150000 пользователей online

(5 серверов)по 4 воркера node.js на каждом сервере

3 БД (mysql)

ВКонтакте

Page 8: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Статистика:

ВКонтакте

Page 9: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Виджеты:

ВКонтакте

Page 10: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Проблемы:- изоляция данных

ВКонтакте

Page 11: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Проблемы:- изоляция данных   - кроссдоменное взаимодействие   - кроссбраузерность

ВКонтакте

Page 12: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

- кроссдоменное взаимодействие

ВКонтакте

postMessage (FF >= 3, Chrome, Opera >= 9, IE >= 8)

Как быть с остальными браузерами?

Page 13: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

- flash посредник

ВКонтакте

работает везде где есть flash, но уступает по скорости.

Page 14: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

- hash родительского окна

ВКонтакте

медленно работает, заметен пользователю, может конфликтовать с библиотекамми пользователя, использующими hash

Page 15: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

- hash дополнительного iframe

ВКонтакте

медленно работает, требует дополнительного файла на домене сайта.

Page 16: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

- nixTransport

ВКонтакте

IE <= 7

(созданная через VB функция доступна у window.opener фрейма)

Page 17: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

- frameElement

ВКонтакте

FF <= 2.0

(присвоенные к фрейму функции доступны из  фрейма через window.frameElement)

Page 18: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

- easyXDM

ВКонтакте

Использует postMessage, nixTransport, frameElementразмер: 17 кбmin: 4.5 кб

Page 19: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

- easyXDM

ВКонтакте

Использует postMessage, nixTransport, frameElement, hashTransport, nameTransportразмер: 17 кбmin: 4.5 кб

Не совместим с некоторыми сайтами, переопределяющими JSON, encodeURIComponent.Использует onDocumentLoad

Page 20: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

- fastXDM

ВКонтакте

Использует postMessage, nixTransport, frameElementразмер: 6.3 кбmin: 4.5 кб

не конфликтует при переопределённом JSON, не использует onDocumentLoad

Page 21: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Интеграция со сторонними ресурсами

- Twitter

ВКонтакте

Page 22: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Интеграция со сторонними ресурсами

- Twitter запрос → очередь очередь → запрос к Twitter

ВКонтакте

Page 23: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Интеграция со сторонними ресурсами

- Twitter запрос → очередь очередь → запрос к Twitter → очередь pulling → очередь

ВКонтакте

Page 24: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Интеграция со сторонними ресурсами

- Share

ВКонтакте

Page 25: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Интеграция со сторонними ресурсами

- Share запрос → адрес спец. Сервера запрос к спец. Серверу → результат сохранение результата на сервере

ВКонтакте

Page 26: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Интеграция со сторонними ресурсами

- Share openGraph

ВКонтакте

Page 27: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

Интеграция со сторонними ресурсами

ВКонтакте

Open Graph

Page 28: Интеграция открытых технологий и взаимодействие со сторонними проектами в условвиях высоких нагрузок,

ВКонтакте

Вопросы?