Проверьте Google CDN для определенного местоположения
У нас есть видео (mp4) файлы в Google Storage с включенным CDN. Видео с псевдопотоком (HTTP byte-range) хорошо от всех, кроме одного из наших пользователей. Все видео имеют одинаковый формат, были закодированы ffmpeg с одинаковыми параметрами. Все видео хорошо транслируются из разных мест (особенно проверено в США и Европе).
Только один пользователь из Южной Кореи сообщает, что он не может транслировать некоторые видео, но может хорошо транслировать другие. Он попробовал 3 разных устройства (Windows, iPhone, Android в виде таблицы) с одинаковым результатом. Он попытался переключиться на мобильную сеть (LTE) и все еще имел проблему. Мы не знаем, есть ли у других пользователей в Южной Корее такая же проблема или нет, у нас там не так много пользователей.
Возможно ли, что узлы PoP или GCC в Южной Корее обслуживают немного другие данные, чем в других местах? Можно ли тестировать HTTP-запросы к тем же узлам PoP, GCC, что и корейские пользователи из Европы?
Обновление: после еще нескольких испытаний с пользователем мы обнаружили, что видео загружено (по curl
) верно. У него тоже есть проблемы с некоторыми свежими видео, поэтому проблема не в кешировании. Проблема возникает, когда видео имеет индекс в конце, поэтому проигрыватель должен сначала искать в конце файла (HTTP byte-range
). (Но не всегда он может воспроизвести несколько видео с индексом в конце).
1 ответ
Проверьте свой сервис из разных мест
Данные не обслуживаются по-разному в зависимости от местоположения. Чтобы сделать HTTP-запрос из удаленного местоположения, я бы предложил развернуть экземпляр виртуальной машины с контейнером с готовым сервером VPN ( 1) в области, близкой к удаленному местоположению, которое вы ищете ( 2). В этом случае, Тайвань или Сингапур ( 3) будут ближайшими для тестирования вашего сервиса.
Google CDN и большие файлы
Как видите, кэшированные ответы должны иметь размер менее 10 МБ, иначе они не будут кэшированы ( 5). Тем не менее, документация предлагает совет для кэширования больших файлов в направлении оптимизации исходящего трафика с помощью Cloud CDN Interconnect ( 4). Казалось бы, Cloud CDN не является надлежащим сервисом для потоковой передачи видео. Можете ли вы сказать мне, как вы обрабатываете в своем бэк-энде потоковое видео через HTTP? Вы как-то разбиваете файлы перед отправкой данных в ответах? Вы также можете проверить свои журналы, чтобы увидеть, отправляются ли данные из кэша пользователям или из серверной части. ( 6)
Google CDN и частичные ответы на контент
Согласно ( 5) единственными сохраненными ответами являются ответы, имеющие код состояния 200/203/300 и т. Д., А также другие условия, которые должны соблюдаться. Обычно, согласно RFC 7233 ( 7), успешные частичные ответы контента кодируются с помощью кода состояния HTTP 206. Это означает, что Cloud CDN неявно поддерживает кэширование частичного содержимого. Тем не менее, имейте в виду, что Cloud CDN соответствует спецификациям RFC 7234 ( 8) в том смысле, что запросы диапазона байтов необязательны при использовании кэширования ("Кэш МОЖЕТ завершить сохраненный неполный ответ, сделав последующий запрос диапазона"). Мое мнение таково, что кэшируются только ответы с полным содержимым, в то время как запросы на "чанки" передаются на исходный сервер, а ответы не вставляются в кэш.