Следующее взято изЭксплуатация и обслуживание
посмотреть на проблему с точки зрения,В основном он основан на опыте, обобщенном на основе архитектуры прямого вещания определенного облака и определенной станции.,Я еще добавил немного своих мыслей,Я надеюсь пойти дальше по пути CDN.
Бизнес в прямом эфире условно делится на три этапа:
Для ознакомления вы можете обратиться к официальной документации поставщика облака.
Якорный толчок обычно собирает разнообразные данные (экран, Камера, расширяемый контент),использоватьOBS
или другойПрограммное обеспечение для потоковой передачи передает потоки на узлы CDN
,Конечно, здесь реализованы и другие функции.,НапримерКрасота
、водяной знак
、фильтр
Подождите, пока все функциипрежде чем нажать
Уже обработано。
С точки зрения протокола, основные концепции живой CDN включают формат пикселей, протокол передачи, протокол кодирования видео и протокол инкапсуляции видео. В настоящее время основными являются yuv420 (формат пикселей), aac (кодирование звука), H264 (формат кодирования видео). , flv/hls (протокол инкапсуляции видео), rtmp (протокол передачи видео)
Для подробного ознакомления с протоколом вам необходимо самостоятельно загуглить. Вот краткий список распространенных протоколов, которые будут использоваться в прямых трансляциях.
Конфигурация push якоря относительно проста, вы можете посмотреть на рисунке ниже.
Когда вы нажмете, чтобы начать потоковую передачу, клиент инициирует запрос на подтверждение RTMP к серверу. После успешного установления связи он начнет проверку аутентификации. Когда аутентификация будет пройдена, пограничный сервер активно отправит поток в прямую трансляцию. center и отправить поток в центр прямой трансляции, эта длинная ссылка будет действовать до конца push якоря, за исключением непреодолимых рисков (дрожание сети, аномальная загрузка узла и т. д.).
Извлечение потоков — это пассивный процесс. Пользователь обычно отправляет запрос на пограничный узел для воспроизведения потока. Пограничный узел проверит, есть ли в нем поток. Если нет, он рекурсивно перейдет в центр прямой трансляции. вытащить поток. Если центральный поток еще не существует, он будет. Если он существует, будет возвращена ошибка 404.
Вход трафика относится к тому, как клиент запрашивает ваш узел.
Как правило, более зрелые коммерческие поставщики CDN размещают N групп VIP на LVS каждого узла, за которым следует реальный сервер. Каждая группа VIP имеет разные функции, такие как различение крупных, средних и мелких клиентов, специальные VIP для возврата в исходное состояние. , использует ли https и т. д., когда пользователь запрашивает доменное имя, CNAME может быть проанализировано. При принятии решений о планировании ваш запрос в конечном итоге будет преобразован в запись A. Эта запись A является VIP. ЛВС.
Если вы просто создаете CDN для себя, более простой и простой в обслуживании метод — напрямую использовать записи A. На каждой машине в компьютерном зале есть разрешение доменного имени. Это разрешение имеет только записи A и записи AAAA. запросит интерфейс планирования, и интерфейс вернет несколько URL-адресов, которые фактически сообщают вам, какая машина предоставляет вам услуги. Эта ситуация сильно зависит от планирования и терминалов. Обычно таким образом можно использовать только собственные сети CDN. Подробное планирование будет представлено позже.
Преимущества и недостатки двух способов входа:
Запросы CDN в конечном итоге будут направляться на бизнес-порты, такие как IP:80, IP:443 и IP:1935. Как правило, эти порты контролируются Nginx или его вторичными продуктами разработки. nginx выполнит уровень пересылки запроса и перенаправит запрос в модуль nginx-rtmp или приложение SRS.
Конечно, шлюз точно не будет просто функцией пересылки.,картинаАутентификация
、обратитесь к черному и белому списку
На этом уровне также реализованы функции ожидания.。
SRS — это простой и эффективный видеосервер реального времени, поддерживающий RTMP/WebRTC/HLS/HTTP-FLV/SRT. По сравнению с NGINX-RTMP, SRS поддерживает более богатый набор протоколов и больше соответствует современным сценариям прямого вещания.
После вторичной разработки SRS стал лучше работать с потоковой передачей RTMP. В предыдущем NGINX часто были ошибки. Это сокращает процесс возврата к источнику за счет добавления слоя микросервисов (kratos) перед шлюзом, и SRS будет пересылать запрос Kratos через шлюз, который отвечает за взаимодействие с SRS. поток и запрашивает тот, у которого есть процесс. Это значительно сокращает процесс возврата к источнику.
Адрес: https://gitee.com/ossrs/srs
С изменением архитектуры сценарии использования устройства возврата к источнику постепенно исчезли. В настоящее время можно создавать только некоторые файлы специального протокола (HLS7) для выполнения запросов возврата к источнику по требованию.
Обновления архитектуры, связанные с прямой трансляцией: шлюз(nginx-rtmp)->Вернуться к источнику шлюз->kratos->SRS
Объем журналов CDN очень велик, и прямая трансляция не требует больших требований к диску. Как правило, относительно большие механические диски не предназначены специально для прямой трансляции, а это означает, что пространство вашего журнала ограничено, и вам необходимо сообщать о журналах. время. Эти журналы будут использоваться в таких сценариях, как анализ задержек, расчет пропускной способности и т. д.
Опыт просмотра в реальном времени имеет два направления.,время первого кадра
,Одним из них является задержка между вашим временем и временем просмотра прямой трансляции.
。Ниже приводится введение в то, что произойдет, если вы пройдетеquic
чтобы уменьшить задержку。
QUIC — это программное обеспечение Google с открытым исходным кодом, основанное на UDP
Четырехуровневый протокол имеет большие преимущества в низкой задержке и высокой надежности.
Эксплуатация и терминал обслуживания поддерживает QUIC,Когда пользователь запрашивает воспроизведение потока,client->Канал краевого узла будет переключен наQUICпросить。Узел также поддерживает возврат в начало координат.QUICпротоколиз,Возможность использовать QUIC для возврата к источнику,Это означает, что нисходящая линия связи ускоряется.,Чтобы добиться оптимизации в этом аспекте.
При использовании QUIC также возникают некоторые проблемы. Наиболее очевидная из них заключается в том, что использование QUIC машинных ресурсов необходимо контролировать до соответствующего порога. Конечно, его также необходимо разработать и измерить для оптимизации, чтобы не влиять на производительность. Существует также запрошенная вами стратегия сокрытия. Если ваше приложение QUIC зависает, как переключиться на использование TCP для потоковой передачи.
Информация о пропускной способности более важна в трех местах: во-первых, это выходная пропускная способность коммутатора, а во-вторых, пропускная способность сетевой карты сервера и пропускная способность фактического объема бизнеса.
Сбор данных о пропускной способности коммутатора:Выключатель также можно понимать как компьютерный зал.из Последний уровень защиты,Метод Сбор данных о пропускной способности коммутатора собирается с использованием SNMPv3.,Конечно, есть предпосылки,Ваше устройство сбора данных находится в белом списке коммутатора. Преимущество SNMPv3 заключается в том, что для сбора данных требуется учетная запись и пароль.,Это как добавить уровень защиты, верно?,Пропускная способность сбора данных протокола SNMP — это используемый OID.,Вы не можете отправить много задач одновременно,В противном случае нагрузка на ЦП коммутатора не выдержит.
Сбор данных о пропускной способности сервера:сервериз Сбор сетевых карт намного проще, чем свитчи,Есть два плана,Первый сбор по SNMP,Второй использует Прометус для сбора,Все в основном играют с этим планом.
Сбор бизнес-пропускной способности:Компьютерный зал может иметь более одного бизнеса.,Такие как прямая трансляция, услуги динамического ускорения по требованию.,Развернуто в разных компьютерных залах,В настоящее время невозможно смотреть только на пропускную способность коммутатора. Вы можете использовать метод iptables для сбора данных о пропускной способности.,Более подробную информацию можно найти по этой ссылке: https://www.cnblogs.com/feng0919/p/15203395.html.
В этом документе представлен только сбор данных о пропускной способности.,Итак, как проверить пропускную способность обратного канала между одним и тем же кластером?,Нужен в это времяиспользоватьipsetКоманда для создания кластера,затем вiptables Используйте набор совпадений в .
Преимущества развертывания среды k8s на узлах CDN относительно высоки. При использовании Deamon ваши пограничные узлы могут поддерживать пакетное развертывание контейнеров, а также вы можете использовать время простоя машины для запуска автономных сервисов.
Одной из характеристик краевых узлов является сложность сетевой среды.,Оператор вашей машины может быть узлом не трех основных операторов (China Mobile, China Unicom, China Telecom),так что тыизk8Sкластериз Сеть нуждаетсяBGPиз Выход,Кластерные приложения обычно размещаются в облаке.
Узлу Node необходимо развернуть только два приложения, Docker и Kubelet, и он может написать Ansible и выполнять их непосредственно в пакетном режиме. Следует отметить, что лучше всего использовать независимые точки монтирования для каталогов Docker. Контейнеры и «голые» приложения изолированы друг от друга и не затрагиваются.
Поскольку среда K8S передается специальному контейнерному отделу для обслуживания кластера, эксплуатация и обслуживание отвечают только за обслуживание узлов Node. Сложность обслуживания значительно снижается. Вам нужно только обратить внимание на то, является ли среда Docker нормальной. и бревна вращаются нормально.
С точки зрения мониторинга и сбора рекомендуется использовать promethus. После развертывания node_exporter на граничном узле можно получить большую часть данных об оборудовании. Для настраиваемых бизнес-данных вы можете использовать задачу cron для регулярного выполнения сценария и его записи. в указанный каталог для загрузки. Если есть силы, то можно. Но можно написать агента самостоятельно, вытаскивать из платформы задачи, которые должна выполнять машина, и выполнять их регулярно.
При бизнес-операциях и обслуживании более необходим сбор бизнес-данных. Основными данными являются:
Текущая ситуация в бизнесе прямых трансляций,Узким местом аппаратного обеспечения является главным образом процессор.
,Службы потокового вещания потребляют гораздо меньше памяти и диска.
,Оптимизация использования ЦП может улучшить общую производительность компьютера.,Конечно, это также требует поддержки исследований и разработок.
Нажмите на прямую трансляцию, чтобы запустить,по требованиюбизнесиз Узким местом в основном являетсяIO
、Вслед за процессором
,Если машинный сервис поддерживает как,Также поддерживает прямую трансляцию,Общий коэффициент использования будет улучшен.
Оптимизация пакета машины для прямой трансляции, мощный процессор, память 64/128 ГБ, 2 SSD-диска по 120 ГБ + диск PCIE 500 ГБ полностью адаптированы к самому бизнесу прямой трансляции.
Машины потокового вещания — это предприятия с высоким трафиком, и параметры вашего ядра необходимо соответствующим образом настраивать. Эта настройка представляет собой непрерывную задачу, которую можно выполнить только путем накопления проблем по мере их возникновения.
Почему существует концепция кластера? Это потому, что у этой машины может не быть этого ресурса, но у другой машины в том же компьютерном зале он есть. Таким образом, вам нужно только вернуться к источнику в том же кластере и. нет необходимости снова возвращаться к источнику, чтобы получить его.
В этом же кластере есть важное понятие,то естьПоследовательный хеш
,Хешируйте как машину, так и запрос,Преимущество в том,,Если машина отключается от сети,Не вызовет путаницы в хеше.
Так как же добавить в кластер машины, работающие в одном бизнесе?
Выход узла в Интернет означает доступ к трафику. Если ваш узел работает ненормально, это приведет к большому количеству сбоев запросов и окажет огромное влияние. Поэтому нет необходимости проверять его перед подключением к сети. Основное содержание проверки следующее:
Станция-источник прямой трансляции была очень важной частью предыдущей архитектуры. Все потоки передавались на станцию-источник и обрабатывались. В условиях постоянного развития концепции децентрализации и высоких затрат на пропускную способность основных компьютерных залов компании постоянно переходят на периферию. Ниже приводится лишь введение в функции, которые обычно реализуют исходные сайты, и общую логику реализации.
Шлюз исходной станции прямого вещания управляет LVS VIP на внешней стороне исходной станции rtmp и планирует его при наличии запроса на воспроизведение или потоковую передачу. Суммируйте информацию о потоке, сообщаемую компьютером исходной станции rtmp. Если контрольный сигнал определенного компьютера прерывается, он больше не будет запланирован для соответствующего компьютера, и компьютер будет удален.
Это приложение очень важно и требует стабильной работы. Что касается аппаратного обеспечения, GSLB требует только баз данных POD и KV с соответствующей аппаратной производительностью.
Если ваш запрос возврата к источнику L2 к GSLB не удался, вам также необходимо указать соответствующую стратегию перехода на более раннюю версию. Например, если определенная логика жестко запрограммирована, в случае сбоя доступа к GSLB она будет направлена непосредственно к определенному доменному имени. .
Отвечает за хранение всех онлайн-потоков, выполнение запросов обратно к источнику от краевых узлов и потоковую передачу запросов от других кластеров в центре прямой трансляции.
Компьютеры в исходном кластере rtmp будут периодически сообщать GSLB о своем состоянии работоспособности и текущей информации о онлайн-потоке.
Для этого приложения обычно требуется более десяти физических компьютеров, и нет риска их одновременного сбоя. Если машина выйдет из строя, GSLB напрямую отключит его. В настоящее время исходный сайт все еще использует NGINX-RTMP и планирует заменить его. это с SRS, но исходный сайт слишком стабилен, версия может выпускаться только раз в шесть месяцев, а план замены в основном GG.
Следует отметить, что эти машины находятся в среде интрасети и имеют VIP-адреса общедоступной сети, а это означает, что сетевая конфигурация вашей машины будет более сложной, поэтому будьте осторожны, чтобы правильно настроить сеть. Каждая машина на исходном сайте имеет около 20 IP-адресов, а сложность сети очень высока. Проверка каждый раз, когда машина подключается к сети или к сети, занимает много времени.
Функция этого кластера заключается в увеличении задержки потоковой передачи. Просто полагаться на исходный сайт для реализации этой логики будет немного сложно и непросто в обслуживании. Поэтому этот кластер возник в основном для удовлетворения требований OTT-сервисов. задержка должна быть 45С). Выше характеристики этого дела).
Этот кластер будет активно извлекать поток с исходного сайта RTMP, хранить его локально в течение определенного периода времени, а затем отправлять на исходный сайт. Конечно, имя потока будет изменено, и протокол RTMP будет использоваться на всем протяжении. процесс. Причина отказа от использования HLS, который, естественно, поддерживает протоколы отложенного вещания, заключается в том, что некоторые телевизоры его не поддерживают и вынуждены использовать RTMP.
Приложение, используемое этим кластером, также является NGINX-RTMP.
Кластер транскодирования будет относительно тяжелым. Основное решение состоит в том, чтобы преобразовать битрейт исходной картинки, передаваемой привязкой, в разные определения. Каждый поток будет потреблять много вычислительной мощности в процессе транскодирования. Кластер транскодирования находится в источнике. site. В кластере большинство машин, и есть два типа транскодирования: некоторые используют машины с процессором, а некоторые — с графическим процессором. Конкретный принцип не ясен.
Процесс задачи перекодирования примерно следующий:
Принцип работы кластера ретвитов аналогичен принципу отложенной трансляции, за исключением того, что сценарий спроса изменился. Это активная передача потока в определенные места, обычно на коммерческие CDN или другие исходные сайты для резервных потоков.
Он отвечает за пересылку потока от источника к месту назначения.,Каждая задача создастrtmp
илиffmpeg
изпроцесс выполнения этой задачи。
此кластеризэффектто есть ПучокЖивая записьв указанный формат упаковкиизвидеофайл,Этот кластер также имеет относительно высокие требования к процессору.,Вычислительная мощность ЦП является узким местом модификации кластера. В кластере в основном используется модуль NGINX_RTMP.
В случае децентрализации кластер также перемещается на край, и эту задачу берет на себя вышестоящий push-узел.
Исходная станция прямой трансляции не имеет многих портов, открытых для внешнего мира. Если взять в качестве примера наш бизнес, исходная станция RTMP имеет только три общедоступных IP-адреса. Если вы возвращаетесь к источнику через устройство LVS перед исходной станцией RTMP, то половина пропускной способности сетевой карты вашего компьютера используется для возврата к источнику в том же кластере. Это приведет к пустой трате ресурсов, поскольку ваш компьютер. может использовать только половину пропускной способности бизнеса.
Решение состоит в том, что каждая машина прослушивает дополнительный порт в дополнение к порту 1935. Порт каждой машины различен, поэтому машину можно отличить по порту.
Когда у L2 есть запрос на возврат к источнику, при запросе GSLB он сообщит вам адрес IP:PORT. Это решение значительно снижает пропускную способность возврата к источнику в том же кластере.
Схема топологии следующая:
Исходный сайт находится за четырехуровневым устройством балансировки нагрузки, таким как LVS. Обычно используется режим NAT или DR, который позволяет напрямую подсчитывать пропускную способность на устройстве балансировки нагрузки, но режим DR может учитывать только входящую и исходящую пропускную способность. Статистика пропускной способности может быть реализована только на машине.
Идея состоит в том, чтобы использовать iptables. VIP будет установлен на вашем компьютере, и разные VIP можно будет поместить в разные правила цепочки. Таким образом, вы можете увидеть распределение возвратов разных операторов.
Следующие три распространенные системы планирования CDN — это планирование DNS, планирование 302 и планирование HTTPDNS, но в конечном итоге все они позволят пользователям получить доступ к определенному IP-адресу. Ваша библиотека планирования должна иметь полное количество доступных IP-адресов и статус этих IP-адресов, иначе ваша система планирования будет иметь неточное планирование. Конечно, вам также необходимо приобрести библиотеку IP-адресов, иначе вы не сможете подтвердить, откуда взялся запрошенный IP.
У каждой машины есть порог производительности машины. Поскольку пропускная способность узла включает в себя выставление счетов, для достижения точного планирования необходимы базовые данные.
Здесь будет единый кластер, который собирает информацию об оборудовании машин и компьютерного зала. Как правило, данные о процессорах и сетевых картах собираются, а затем загружаются в систему планирования. Эти обработанные данные также содержат ряд информации, такой как возможности MaxUse каждой машины и компьютерного зала, можно ли это запланировать, а затем позволяют принимать решения по планированию.
Будучи платформой поддержки CDN, она должна реализовать множество функций для защиты CDN. Вот что, я думаю, должно быть.
Стоимость — неотъемлемая тема для каждой компании. Как сократить расходы, не влияя на качество, — это хороший способ повысить производительность.
По сравнению с основным компьютерным залом, граничные узлы могут иметь худшее качество сети, но цена намного ниже, чем основной компьютерный зал. Вы можете попробовать реализовать некоторые функции исходного сайта на этих пограничных узлах, например, запись снимков экрана. возможностей достаточно, также можно выполнить перекодирование.
Сократите использование облачных ресурсов. Стабильность облачных ресурсов очень хорошая, но стоимость машин слишком высока. Компьютерные залы третьего уровня Edge можно использовать для замены облачных продуктов.
На рынке появятся некоторые поставщики облачных услуг, которые предоставляют некоторые машины для майнинга. Такое оборудование не может использовать порты 80 и 443. Некоторые из них все еще имеют выделенные линии агрегации. Цена имеет очевидные преимущества по сравнению с IDC. Рекомендуется использовать контейнеризацию бизнес-приложений и использовать K8S для оркестрации ваших машин. Поскольку каждая машина находится в другом месте, концепция кластера отсутствует, что может привести к увеличению количества запросов к источнику. Один из способов улучшить это — полагаться на планирование, позволяющее различным машинам иметь разные потоки. Конечно, горячие потоки будут существовать в каждой машине. Второе — это концепция создания логического кластера, позволяющего этим машинам возвращаться к источнику через общедоступную сеть.