The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск Angie 1.4.0, российского форка Nginx "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
. "Выпуск Angie 1.4.0, российского форка Nginx " –1 +/
Сообщение от Легивон (?), 12-Дек-23, 22:07 
>потому что для видео это не совсем так работает. Будешь отдавать его медленнее чем оно предназначено воспроизводиться - тебя отп...дят счастливые зрители.

Как это противоречит тому что я написал выше?
Представим следующий пайплайн:
- Загрузка файла на сервер тригерит event "$file_path created" и ложите его в очередь.
- С другой стороны очереди работают консюмеры, очень простые обертки над ffmpeg на высокоуровневом языке, на питоне например. Которые с некоторой задержкой приходят в новый файл и смотрят его парамеры. Файл к слову может иметь любой формат в рамках поддерживаемого ffmpeg, в отличии от вкоряченого костыля. В том числе может быть вообще не видео файлом. Полученые параметры записываются в базу данных: redis/memcached и т.д.
- nginx получает запрос на скачивание файла, ищет параметры шейпинга в своем кеше, если не находит забирает их из базы за rtt до неё, ложит в кешь, шейпит. Не находит данных в базе - применяет описаное дефолтное поведение, например скорость больше чем требуется 99% файлов.
Что в этом сложного?
Все работает быстро, скейлится до бесконечности, не зависит от форматов файлов.
Ты ни разу не разрабатывал ПО? Не понимаешь что часто нужно жертвовать (только кажущимся) удобством в пользу архитектуры, в пользу общих переиспользуемых и ограниченых подходов, вместо решения здесь и сейчас (плевать что будет завтра)?

> почему бы действительно вместо того чтобы просто не взять параметры прямо из файла - не встраивать в веб-сервер взаимодействие с какими-то базами и еще какой-то отдельно кэш?!

Потому что это универсальный механизм относительно любых форматов файлов (а не костыль для какого-то одного), это существенно уменьшает уровень абстракций, это делает ПО поддерживаемым и имеющим шансы на будущее.
Все веб серверы УЖЕ УМЕЮТ общаться с тем же redis. Потому что таким образом проще всего добиться динамичекого поведения (а уж кеш имеют и подавно). Можешь посмотреть например, что представляет из себя протокол того же redis 5. Он настолько простой, что пользоваться им можно используя /dev/tcp client в bash.
Сейчас они в веб сервере реализовывают парсинт форматов видео файлов для конфигурирования шейпера под всеобщее улюлюкание. Завтра это импортозащекченное нечто принудительно начнет шейпить в зависимости от отношения передаваемого содержимого к рюсиюшке, правящей партии и прочей сиюминутной конъюнктуре. Это определенно не то и не в том месте поведение которого мы ожидаем.

> Попутно озадачив пользователя микроменеджментом этого всего вручную.

Если пользователь что-то хочет делать руками - это его право. Он в любом ПО найдет эту возможность.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск Angie 1.4.0, российского форка Nginx , opennews, 12-Дек-23, 18:48  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру