Turinys[Slėpti][Rodyti]
Yra gana didelė tikimybė, kad ką nors transliavote, jei bet kurį laiką praleidote prisijungę.
Srautas yra vienas iš labiausiai žinomų interneto programų naudojimo būdų, nesvarbu, ar tai būtų „YouTube“, „Spotify“, „Netflix“ ar šimtas kitų.
Tačiau, atsižvelgiant į tai, koks įprastas srautinis perdavimas, tai paprasta laikyti savaime suprantamu dalyku. Pavyzdžiui: kas tiksliai yra srautinis perdavimas?
Bet kokia tiesioginė ar įrašyta medijos medžiaga, siunčiama internetu į kompiuterius ir mobiliuosius įrenginius ir atkuriama realiuoju laiku, vadinama srautu.
Įprasti srautinio perdavimo medžiagos tipai yra tinklalaidės, internetinės transliacijos, kino filmai, televizijos laidos ir muzikiniai vaizdo įrašai.
Medijos elementai, pvz., muzika, vaizdo įrašai ir kiti, yra planuojami ir perduodami nuosekliais duomenų paketais, kad juos būtų galima nedelsiant transliuoti.
Tinkamas įrenginys, prieiga prie srautinio perdavimo paslaugos ar programos ir greitas, patikimas didelės spartos interneto ryšys yra viskas, ko jums reikia norint transliuoti.
Pastaba: kaip pavyzdį naudosime vaizdo transliacijos paslaugą.
Šiame įraše bus išsamiai apžvelgta srautinio perdavimo paslaugos sistemos konstrukcija ir pagrindiniai veiksniai, į kuriuos reikia atsižvelgti kuriant vaizdo transliacijos programas.
Sistemos reikalavimas
Tarp populiariausių vaizdo transliavimo paslaugų pasaulyje yra „YouTube“ ir „Netflix“. Siekiant pagerinti vartotojo patirtį, jų architektūroje yra keletas elementų.
Tokia paslauga apima populiarius filmus, sąskaitų faktūrų išrašymą, AI pagrįstas rekomendacijų sistemas ir vėlesnį žiūrėjimo funkcionalumą, tačiau mes sutelksime dėmesį į esminius elementus.
Pagrindinės savybės
Į savo koncepciją įtraukėme šias galimybes vaizdo transliacijos aptarnavimas:
- Turinio kūrėjai gali skelbti vaizdo įrašus.
- Žiūrovai vaizdo įrašams žiūrėti gali naudoti daugybę įrenginių (mobilųjį telefoną, televizorių ir kt.).
- Vaizdo įrašuose naudotojai gali pažymėti pastabas, patinka arba nepatinka.
- Vaizdo įrašų pavadinimai gali būti naudojami jų paieškai.
- Kad ši statistika būtų rodoma vartotojams, sistema gali saugoti peržiūras, teigiamas ir nepatinkančias pastabas.
Sistemos tikslai
- Neturėtų būti jokio buferio, kad žiūrovai galėtų žiūrėti vaizdo įrašus realiuoju laiku.
- Vaizdo įrašų saugykla turi būti patikima. Neturėtumėte prarasti įkeltų vaizdo įrašų.
- Didėjant vartotojų skaičiui, sistema turėtų būti keičiama.
- Mažas delsos laikas ir didelis prieinamumas turėtų būti sistemos ypatybės. Šioje situacijoje nuoseklumas nėra toks svarbus, nes vartotojas gali šiek tiek palaukti, kol pamatys ką tik pateiktą filmą.
Vienas serveris negali apdoroti duomenų kiekio, nes sistema turi reguliariai valdyti didelį srautą. Sistemai aptarnauti bus naudojama serverių grupė.
Net jei vienas serveris sugenda, klientams neturėtų būti pastebimo greičio poveikio.
Aukšto lygio architektūra
Vaizdo įrašų srautinio perdavimo programa gali priimti vieną iš trijų skirtingų užklausų:
- Įkelti (rašyti)
- Ieškoti (skaityti)
- Žiūrėti (skaityti)
Kadangi skaitymo užklausos (paieška ir peržiūra) dažnai bus kelis kartus dažnesnės nei rašymo užklausos (įkėlimas), kiekvieną iš jų tvarko atskira serverių grupė.
Kadangi programa intensyviai skaito, turėsite nustatyti daugiau serverių, kad būtų galima apdoroti skaitymo užklausas nei įkėlimus.
Kiekviena kliento užklausa nukreipiama į tinkamą mikroservisą krūvio balansuotojas kai jis bus gautas.
Įkėlimo paslauga
Įkėlimo paslauga, kuri apdoroja vaizdo įrašą, įkelia jį į „Open Connect“ serverius ir padaro jį prieinamą visiems vartotojams, įvykdo įkėlimo užklausą.
Paieškos paslauga
Apkrovos balansavimo priemonė siunčia paieškos užklausą į paieškos mikroservisą, kuri tada siunčia ją į „Netflix“ Elastic paiešką. Klientas gauna Elastic paieškos atsakymą.
Elastinė paieška – neįtikėtinai keičiamo dydžio viso teksto atvirojo kodo paieškos variklis – „Netflix“ naudoja ieškant milijonuose vaizdo įrašų.
Elastinę paiešką „Netflix“ naudoja klientų aptarnavimo operacijoms analizuoti.
Žiūrėti paslaugą
Dauguma peržiūros užklausų nebus siunčiamos į apkrovos balansavimo priemonę arba „Netflix“ serverius. Vietoj to, vartotojai prisijungs prie vietinių IPT ir bus maitinami tiesiai iš artimiausio „Open Connect“ serverio.
Tačiau jei prašomas vaizdo įrašas nepasiekiamas, jis bus siunčiamas į apkrovos balansavimo įrenginį ir peržiūros mikroservisą.
Tada vaizdo įrašas ieškomas metaduomenų duomenų bazėje, paimamas iš metaduomenyse nurodyto kelio ir perduodamas klientui.
Žinoma, ši technika apima delsą, todėl praktiškai visos peržiūros užklausos pateikiamos per Open Connect.
Įkelti vaizdo įrašus
Pagrindinis „YouTube“ tikslas yra įkelti filmą ar vaizdo įrašą. Vaizdo įrašų srautinio perdavimo paslauga turi įveikti daugybę kliūčių, kad vaizdo įrašas būtų prieinamas vartotojams.
Laikymas gabaliukais
Kiekvienas pateiktas vaizdo įrašas bus padalintas į daugybę mažesnių failų, o ne saugomas kaip vienas didžiulis failas.
Tai būtina, nes turinio gamintojai gali pateikti didžiulius vaizdo įrašus. Vieno didelio failo apdorojimas arba srautinis perdavimas gali užtrukti.
Žiūrovui nereikės atsisiųsti viso vaizdo įrašo, kad jį galėtų paleisti, jei jis bus išsaugotas ir prieinamas dalimis.
Siekdamas užtikrinti, kad tarp gabalų būtų mažai delsos ir kad vartotojas galėtų sklandžiai žiūrėti, klientas pirmiausia paprašys serverio pirmos dalies, o tada, kol ši dalis groja, užklausą kitos dalies.
Apdorojimo eilė
Kiekvienas vaizdo įrašas turi daugybę dalių, o „Netflix“ naudos kelis vienu metu dirbančius darbuotojus, kad juos analizuotų, todėl reikalinga apdorojimo eilė. Pridėjus juos prie eilės, tai tampa paprasčiau.
Darbai bus surinkti darbuotojų (arba koduotojų, kuriuos aptarsime toliau), užkoduoti į įvairius formatus ir saugomi paskirstytoje failų saugykloje.
Vaizdo kodavimas
Labai svarbu konvertuoti ir išsaugoti vaizdo įrašų dalis keliais formatais, kad žiūrovai galėtų juos pasiekti naudodami jiems tinkamiausią technologiją ir interneto ryšį.
Žiūrovai vaizdo įrašą gali matyti nešiojamajame kompiuteryje, telefone, televizoriuje ar kitose programėlėse. Optimalūs įvairių įrenginių formatai skiriasi vienas nuo kito.
Panašiai įvairūs žiūrovai, norėdami pasiekti internetą, gali naudoti įvairius pralaidumus.
Kai kurie žiūrovai gali lengvai transliuoti didelės raiškos filmus, priklausomai nuo interneto ryšio greičio ar pralaidumo, o tie, kurių pralaidumas mažesnis, galės daug lengviau transliuoti žemos kokybės vaizdo įrašus.
Atidarykite Connect
Kai naudojate naršyklę, norėdami pateikti užklausą Netflix.com, jūsų IPT (interneto paslaugų teikėjas) tikrai prašoma užmegzti ryšį tarp jūsų kompiuterio ir „Netflix“ serverio.
Jūsų IPT susisiekia su „Netflix“ IP adresu jūsų vardu ir grąžina jums rezultatą. Dėl šių serverių koncentracijos JAV auditorija atokioje šalyje, pavyzdžiui, Tokijuje, patirs didelį signalų perdavimo ir priėmimo vėlavimą.
Vaizdo įrašuose vėlavimai kelia didesnį susirūpinimą, nes žiūrovui turi būti perduota daug duomenų, o jei taip, srautas bus atidėtas ir nukentės naudotojo patirtis.
„Netflix“ naudoja protingą techniką, kad išspręstų problemą. Jis žinomas kaip „Open Connect“ (OC). „Open Connect“ yra CDN, kurį naudoja „Netflix“ (turinio pristatymo tinklas).
Siekiant išsaugoti internetinę informaciją talpykloje ir greitai ją pateikti vartotojams, sumažinant fizinį atstumą tarp vartotojo ir medžiagos, CDN yra platinimo serverių ir susijusių duomenų centrų tinklas.
Apkrovos balansavimas
A viena paraiška serveris negali apdoroti užklausų kiekio (įskaitant įkėlimo, paieškos ir peržiūros užklausas), kurios gaunamos kas sekundę.
Turi būti įdiegta apkrovos balansavimo priemonė, kuri efektyviai paskirstytų darbo krūvį daugeliui serverių, nes yra keli serveriai.
„Netflix“ naudoja nuolatinę maišą, kad paskirstytų apkrovas tarp serverių, nes gali susidoroti su serverio gedimais ir lengvai įdiegti papildomus serverius.
Kadangi kiekvieno vaizdo įrašo populiarumas skiriasi, tikrieji serveriai, kuriuose yra šie filmai, gali patirti nevienodą apkrovą. Naudodami dinaminius HTTP peradresavimus, kurie leidžia užimtam serveriui nukreipti naują užklausą į atvirą serverį, galime išspręsti šią problemą.
Apsvarstymai kuriant vaizdo transliacijos programą
Raskite ir išplėtokite savo nišą
Turint tiek daug įvairios medžiagos, nuo pramogų iki švietimo iki kūno rengybos, labai svarbu sukurti skirtingą specialybę. Galite sukurti dokumentinių ar nepriklausomų filmų platformą.
Programos pajamų gavimas
Tradicinių pajamų gavimo modelių sutrikdymas gali paskatinti naujoves ir augimą. Planai visada turi būti pritaikyti tikslinei auditorijai.
Kadangi dabartiniai operatoriai jau monopolizavo rinką, galite pabandyti gauti pajamų iš nemokamos narystės naudodami skelbimus arba produktų rodymą.
Be to, jei norite sukurti pasaulinę srautinio perdavimo paslaugų platformą, turite atsižvelgti į kelių valiutų poreikius.
Geresnė patirtis
Programos našumas turėtų būti pagerintas esant ypatingoms aplinkybėms, tokioms kaip lėtas internetas arba ribotos prieigos vartotojai.
Srautiniai vaizdo įrašai
„Netflix“ ne tik transliuoja turinį, bet ir naudoja vartotojo inžinerijos metodus bei suasmenintus pasiūlymus, kad naudotojai būtų įsitraukę į paslaugą.
Suplanuokite sukurti srautinio perdavimo paslaugą, panašią į „Netflix“, daugiausia dėmesio skiriant duomenų analizei ir vartotojo pritaikymui.
Daugelio programos vaidmenų valdymas
„Netflix“ programoje vartotojo rodinys yra tik vienas iš kelių vartotojo vaidmenų. Planuoti reikia įvairiems vartotojams ir jų prieigai, įskaitant administratorių, vaizdo įrašo savininką, partnerius, moderatorius ir kt.
Išvada
Apibendrinant galima pasakyti, kad taip vaizdo transliacijos paslaugos, pvz., „Netflix“, „YouTube“ ir kitos integruotos vaizdo medžiagos, stebi juos ir parodo juos milijonams vartotojų.
Nors kiekviena iš šių programų gali turėti keletą papildomų funkcijų, kurios jas išskiria, pagrindinės funkcijos yra pagrįstos tais pačiais algoritmais.
Padariau viską, kad galėčiau pateikti jums bendrą srautinio perdavimo paslaugų sistemos architektūros apžvalgą, tačiau fone vyksta daug daugiau.
Nuoširdžiai tikiuosi, kad šios žinios jums bus vertingos ir jas panaudosite.
Palikti atsakymą