'

Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted

Понравилась презентация – покажи это...





Слайд 0

Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted Андрей Смирнов NetStream


Слайд 1

НетСтрим (http://netstream.ru/) Содержание Обзор существующих решений. Разработка своего решения (pyFMS): выбор архитектуры, основные проблемы и пути их решения. Борьба за качество: ретрансляция. Полученные количественные характеристики.


Слайд 2

НетСтрим (http://netstream.ru/) Общая схема RTMP RTMP: симметричный; проприетарный; закрытый. Возможности: удаленный вызов процедур (RPC); управление пропускной способностью; работа с аудио-видео потоками (просмотр и запись). Клиент (Flash) Сервер RTMP RTMP


Слайд 3

НетСтрим (http://netstream.ru/) Существующие решения Коммерческие: Adobe Flash Media Server (FMS); Wowza Media Server Pro. Свободное ПО: Red5 (http://osflash.org/red5/); Milenia Grafter (http://milgra.com/); …


Слайд 4

НетСтрим (http://netstream.ru/) Архитектура сетевого сервера Много процессов. Много нитей. Один поток (асинхронный ввод-вывод). Комбинированный: асинхронный в/в + много нитей/процессов.


Слайд 5

НетСтрим (http://netstream.ru/) Концепция нашего решения Простота: не будем реализовывать ничего лишнего; простая архитектура - один поток выполнения. Python: нам хорошо знаком; Twisted Framework; готовые модули: pyAMF.


Слайд 6

НетСтрим (http://netstream.ru/) Twisted Framework Концепция отложенного выполнения (Deferred). Переносимый асинхронный ввод-вывод (reactor). Реализация большого числа базовых протоколов (HTTP, DNS, Telnet, и т.п.)


Слайд 7

НетСтрим (http://netstream.ru/) Архитектура pyFMS


Слайд 8

НетСтрим (http://netstream.ru/) Схема вещания API Клиент pyFMS Сайт (API) Сбор и анализ статистики


Слайд 9

НетСтрим (http://netstream.ru/) Эффективность реализации Python – интерпретируемый ЯП прозрачная сложность операций; легкое расширение с помощью модулей на С. Для увеличения производительности в два раза достаточно было: переписать 5% кода на Python; написать один модуль на C (около 1000 строк кода).


Слайд 10

НетСтрим (http://netstream.ru/) Ретрансляция Вещание на 10 000 клиентов? Легко! pyFMS 1 pyFMS 2 pyFMS 3 pyFMS 4 Источник вещания Ретрансляторы Клиенты вещания Автор вещания


Слайд 11

НетСтрим (http://netstream.ru/) Количественные характеристики На один процесс (одно ядро процессора): 10 тыс. соединений без потока вещания; Вещание: в среднем 100 Мбит/с, пик 140 Мбит/с; примерно соответствует 700-900 человек, которые смотрят вещание. Ретрансляция позволяет наращивать мощность практически неограниченно.


Слайд 12

НетСтрим (http://netstream.ru/) Всё! Вопросы?


×

HTML:





Ссылка: