The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск Angie 1.4.0, российского форка Nginx , opennews (??), 12-Дек-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


18. "Выпуск Angie 1.4.0, российского форка Nginx "  –6 +/
Сообщение от Легивон (?), 12-Дек-23, 19:53 
Лютая дичь, ога. Чуваки ваще не заморачиваются касательно границ ответственности ПО. Сейчас они видеоформаты читают, а завтра что? CD диски записывать будут? Потому что кому-то вдруг потребовалось?
Как у них вообще хватило ума на это? Я вангую этот делал именно тот "инженер", который имеет необратимые повреждения мозга фронтендом. Иного представить сложно. У любого связаного с разработкой ПО (т.е. не фронтенда) "полыхнет" от реализации такой фитчи на таком уровне абстракций.
И еще интересно, как они это реализовали? Втащил в nginx ffmpeg? Или прямо в самом коде реализовали чтение атрибутов mp4 и собираются это поддерживать? Хотя "что-то, что это..."
Пишу комментарий и у меня прямо пригорает. Ребята, ну зачем, хорошо ведь все начиналось?
Почему если вам надо шейпер на конкретные файлы не сделать его вообще абстрактным относительно файлов и форматов, ведь форматы это вообще не уровень веб сервера. Почему нельзя заставить пользователя ложить параметры шейпинга для конкретного файла во внешню быструю kv базу и забирать их оттуда при отдаче, кешировать эти парметры? Зачем такое убожество?
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

21. "Выпуск Angie 1.4.0, российского форка Nginx "  +6 +/
Сообщение от Аноняша (?), 12-Дек-23, 20:06 
Т.е. на N-ом то году жизни вы вдруг узнали, что в nginx уже сто лет как есть модуль для псевдо-стриминга mp4 и вот в нем просто реализовали дополнительную опцию?
Ответить | Правка | Наверх | Cообщить модератору

63. "Выпуск Angie 1.4.0, российского форка Nginx "  +/
Сообщение от нах. (?), 12-Дек-23, 23:29 
причем по-моему как обычно это копипаста из nginx pro
Ответить | Правка | Наверх | Cообщить модератору

22. "Выпуск Angie 1.4.0, российского форка Nginx "  –6 +/
Сообщение от Аноним (17), 12-Дек-23, 20:07 
Тут странно не то что они сделали. А то что ты реально верил что они смогут сделать что-то стоящее. Прав был Сергей Пантелеевич.
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

37. "Выпуск Angie 1.4.0, российского форка Nginx "  +6 +/
Сообщение от нах. (?), 12-Дек-23, 20:55 
> Почему если вам надо шейпер на конкретные файлы не сделать его вообще
> абстрактным относительно файлов и форматов, ведь форматы это вообще не уровень

потому что для видео это не совсем так работает. Будешь отдавать его медленнее чем оно предназначено воспроизводиться - тебя отп...дят счастливые зрители.

> веб сервера. Почему нельзя заставить пользователя ложить параметры шейпинга для конкретного
> файла во внешню быструю kv базу и забирать их оттуда при

почему бы действительно вместо того чтобы просто не взять параметры прямо из файла - не встраивать в веб-сервер взаимодействие с какими-то базами и еще какой-то отдельно кэш?! Попутно озадачив пользователя микроменеджментом этого всего вручную.
Вот прямо образцовый разработчик пришел к нам в тред, не то что эти вот все.

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

53. "Выпуск 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ообщить модератору

60. "Выпуск Angie 1.4.0, российского форка Nginx "  +3 +/
Сообщение от нах. (?), 12-Дек-23, 22:33 
> Представим следующий пайплайн:
> - Загрузка файла на сервер тригерит event "$file_path created" и ложите его
> в очередь.

А если вообще нет никакой "загрузки на сервер" ?

> - С другой стороны очереди работают консюмеры, очень простые обертки над ffmpeg
> на высокоуровневом языке, на питоне например. Которые с некоторой задержкой приходят

и кто их должен писать?

> параметры записываются в базу данных: redis/memcached и т.д.

теперь нам надо следить за актуальностью, поддерживать, резервировать, а попутно ты выбрал как раз те две которые неперсистентны и при плановом апгрейде сервера - что? А если файликов пол-миллиончика?

> - nginx получает запрос на скачивание файла, ищет параметры шейпинга в своем
> кеше, если не находит забирает их из базы за rtt до
> неё, ложит в кешь, шейпит. Не находит данных в базе -

теперь у нас в nginx зависимость от базы данных, миллион костыликов чтоб не упереться в локи и не повиснуть нахрен если база затупила или до нее легла связность... Плюс еще одни кэши которые теперь ЕЩЕ раз надо валидировать, вовремя экспайрить, которые долго прогреваются. Вот здорово, вот красота-то какая!

> Что в этом сложного?

действительно...

> Потому что это универсальный механизм относительно любых форматов файлов (а не костыль

жаль что он вероятно совсем никому не нужен.

В отличие от вполне понятного даже васянскому локалхостеру желания прирезать аппетиты автоскачивальщикам в пользу тех кто просто смотрит онлайн и не ковыряться вручную измеряя битрейт (кстати, интересно что будет если он переменный).

> Все веб серверы УЖЕ УМЕЮТ общаться с тем же redis. Потому что

вовсе нет.
Зачем вебсерверу - какой-то там redis?

У nginx был когда-то какой-то редис-модуль, но он для автоматического кэширования, а не хранения произвольных переменных, кроме того он 3d party и какой-то совсем ужасно васянский (у него и memcache был странен и всегда проигрывал кэшированию на стороне приложений - хотя казалось бы, как).

В любом случае нахрена мне еще и редис сдался если я держу сервер для раздачи статических видеофайлов?

А вот парсер mp4 в сервере таки есть, по другому не работает таймлайн - браузер хочет начало фрейма (или секунду? Я уже забыл у кого секунды а у кого фреймы, у адоба и гугля сделано разумеется нарочно по-разному) а не просто случайный оффсет из середины потока.

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

ты совершенно вправе пердолиться с редисом и мемкэшом ради банального авторейтлимита.
Но боюсь наш гений совтваре девелопмента не умеет кодить и модуля универсального-редис-рейтлимитера мы от него не дождемся.

Хотя возможно такой и был бы востребован.  Но явно реже чем модуль mp4 не требующий никаких внешних костылей и подпорок.

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

73. "Выпуск Angie 1.4.0, российского форка Nginx "  +/
Сообщение от Прыгающий Ленивец (?), 13-Дек-23, 09:05 
К чему многобукв? Это модуль, не хотите не пользуйтесь
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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