Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемwww.smira.ru
1 Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted Андрей Смирнов NetStream
2 НетСтрим ( Содержание 1. Обзор существующих решений. 2. Разработка своего решения (pyFMS): выбор архитектуры, основные проблемы и пути их решения. 3. Борьба за качество: ретрансляция. 4. Полученные количественные характеристики.
3 НетСтрим ( Общая схема RTMP RTMP: симметричный; проприетарный; закрытый. Возможности: удаленный вызов процедур (RPC); управление пропускной способностью; работа с аудио-видео потоками (просмотр и запись). Клиент (Flash) Сервер RTMP RTMP
4 НетСтрим ( Существующие решения Коммерческие: Adobe Flash Media Server (FMS); Wowza Media Server Pro. Свободное ПО: Red5 ( Milenia Grafter ( …
5 НетСтрим ( Архитектура сетевого сервера Много процессов. Много нитей. Один поток (асинхронный ввод-вывод). Комбинированный: асинхронный в/в + много нитей/процессов.
6 НетСтрим ( Концепция нашего решения Простота: не будем реализовывать ничего лишнего; простая архитектура - один поток выполнения. Python: нам хорошо знаком; Twisted Framework; готовые модули: pyAMF.
7 НетСтрим ( Twisted Framework Концепция отложенного выполнения (Deferred). Переносимый асинхронный ввод-вывод (reactor). Реализация большого числа базовых протоколов (HTTP, DNS, Telnet, и т.п.)
8 НетСтрим ( Архитектура pyFMS Приложение 2 Приложение 1 Сервер pyFMS Комната 1 Комната 2 Разделяемый объект Поток (вещание) Клиенты:
9 НетСтрим ( Схема вещания API Клиент pyFMSСайт (API) ВещаниеЧат Разделяемый объект Поток (вещание) Запись потока на диск с последующей обработкой Удаленные вызовы процедур (RPC) Сбор и анализ статистики
10 НетСтрим ( Эффективность реализации Python – интерпретируемый ЯП прозрачная сложность операций; легкое расширение с помощью модулей на С. Для увеличения производительности в два раза достаточно было: переписать 5% кода на Python; написать один модуль на C (около 1000 строк кода).
11 НетСтрим ( Ретрансляция Вещание на клиентов? Легко! pyFMS 1 pyFMS 2pyFMS 3pyFMS 4 Источник вещания Ретрансляторы Клиенты вещания Автор вещания
12 НетСтрим ( Количественные характеристики На один процесс (одно ядро процессора): 10 тыс. соединений без потока вещания; Вещание: в среднем 100 Мбит/с, пик 140 Мбит/с; примерно соответствует человек, которые смотрят вещание. Ретрансляция позволяет наращивать мощность практически неограниченно.
13 НетСтрим ( Всё! Вопросы?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.