Enhavtabelo[Kaŝi][Montri]
Estas sufiĉe deca ebleco, ke vi elsendis ion se vi pasigis iun tempon interrete.
Streaming estas unu el la plej oftaj uzoj por la plej konataj programoj de la interreto, ĉu ĝi estas per YouTube, Spotify, Netflix aŭ cent aliaj.
Tamen, konsiderante kiom ordinara streaming estas, estas simple preni ĝin por koncedite. Ekzemple: Kio estas streaming, ĝuste?
Ĉiu amaskomunikila materialo, ĉu viva aŭ registrita, kiu estas sendita per interreto al komputiloj kaj porteblaj aparatoj kaj reludata en reala tempo, estas nomata streaming.
Oftaj specoj de fluanta materialo inkluzivas podkastojn, retelsendojn, filmojn, televidspektaklojn kaj muzikfilmetojn.
Amaskomunikilaj aĵoj kiel muziko, video kaj aliaj specoj estas planitaj kaj transdonitaj en sinsekvaj datumpakaĵoj por ke ili povu esti elsenditaj tuj.
Taŭga aparato, aliro al streaming-servo aŭ aplikaĵo, kaj rapida, fidinda altrapida interreta konekto estas ĉio, kion vi bezonas por flui.
Noto: Ni uzos videofluan servon kiel nian ekzemplon.
Ĉi tiu afiŝo profunde rigardos la sistemdezajnon de la streaming-servo kaj ŝlosilajn faktorojn por konsideri dum disvolvado de videofluaj aplikoj.
Sistemo Postulo
Inter la plej popularaj videofluaj servoj en la mondo estas Jutubo kaj Netflix. Por plibonigi la uzantan sperton, ilia arkitekturo inkluzivas kelkajn elementojn.
Tia servo inkluzivas popularajn filmojn, fakturadon, rekomendajn sistemojn bazitajn sur AI kaj spekti pli postajn funkciojn, sed ni koncentriĝos pri la esencaj elementoj.
Kernaj Kvalitoj
Ni inkluzivis la jenajn kapablojn en nia koncepto por a filmetoj servo:
- Kreintoj de enhavo povas afiŝi filmetojn.
- Spektantoj povas uzi multajn aparatojn por spekti videojn (poŝtelefono, televido, ktp.).
- En videoj, uzantoj povas rimarki, ŝati aŭ malŝati.
- La titoloj de videoj povas esti uzataj por serĉi ilin.
- Por montri ĉi tiujn statistikojn al uzantoj, la sistemo povas stoki vidojn, ŝatojn kaj malŝatojn.
Sistemaj celoj
- Ne devus ekzisti bufro por ke spektantoj povu spekti filmetojn en reala tempo.
- Stokado por video devus esti fidinda. Vi ne perdu la videojn, kiujn vi alŝutis.
- Kun pliiĝo de uzantoj, la sistemo devus esti skalebla.
- Malalta latenteco kaj alta havebleco devus esti trajtoj de la sistemo. En ĉi tiu situacio, konsistenco ne estas tiel grava ĉar estas bone por uzanto atendi iom da tempo antaŭ vidi ĵus prezentitan filmon.
Ununura servilo ne povas trakti la volumon de datumoj ĉar la sistemo devas administri fortan trafikon regule. Grupo de serviloj estos uzata por servi la sistemon.
Ne devus esti rimarkindaj rapidefikoj por klientoj eĉ se unu servilo kraŝas.
Altnivela Arkitekturo
Programo de videosendado povas akcepti unu el tri malsamaj specoj de petoj:
- Alŝutu (skribi)
- Serĉu (legu)
- Rigardu (legu)
Ĉar legdemandoj (serĉo kaj vido) ofte estos plurfoje pli oftaj ol skribpetoj (alŝuto), ĉiu el ili estas pritraktata de aparta aro de serviloj.
Ĉar la programo estas leg-intensa, vi devos agordi pli da serviloj por trakti legajn petojn ol alŝutoj.
Ĉiu peto farita de kliento estas direktita al la taŭga mikroservo de la ŝarĝa ekvilibro kiam ĝi estas ricevita.
Alŝuta Servo
La alŝuta servo, kiu prilaboras la videon, alŝutas ĝin al Open Connect-serviloj kaj faras ĝin alirebla por ĉiuj uzantoj, plenumas alŝutan peton.
Serĉservo
La ŝarĝbalancilo sendas la serĉpeton al la serĉa mikroservo, kiu tiam sendas ĝin al la Elasta serĉo de Netflix. La kliento ricevas la respondon de la Elasta serĉo.
Elasta serĉo, nekredeble skalebla plenteksta malfermfonta serĉilo, estas uzata de Netflix por serĉi tra milionoj da videoj.
Elasta serĉo estas uzata de Netflix por analizi klientservajn operaciojn.
Rigardu Servon
La plimulto de vidopetoj ne estos senditaj al la ŝarĝbalancilo aŭ al la serviloj de Netflix. Anstataŭe, uzantoj konektos al lokaj ISP-oj kaj estos nutrataj rekte de la plej proksima Open Connect-servilo.
Tamen, se la petita video ne estas alirebla, ĝi estos sendita al la ŝarĝbalancilo kaj la vido-mikroservo.
La vidbendo tiam estas serĉita en la metadatumbazo, prenita de la pado precizigita en la metadatenoj, kaj elsendita al la kliento.
Kompreneble, ĉi tiu tekniko inkluzivas latentecon, tial preskaŭ ĉiuj vidopetoj estas provizitaj per Open Connect.
Alŝutu filmetojn
La ĉefa celo de Jutubo estas alŝuti filmon aŭ filmeton. Servo de videofluado devas venki kelkajn obstaklojn antaŭ ol fari videon alirebla por siaj konsumantoj.
Konservado en Pecoj
Ĉiu sendita video estos dividita en multajn pli malgrandajn dosierojn prefere ol esti konservita kiel ununura grandega dosiero.
Ĉi tio estas esenca ĉar enhavproduktantoj povas sendi grandegajn filmetojn. Unu granda dosiero eble bezonos iom da tempo por procesi aŭ flui.
La spektanto ne devos elŝuti la kompletan videon por ludi ĝin se ĝi estas konservita kaj disponebla al ili en pecoj.
Por certigi, ke estas malmulte da latenteco inter pecoj kaj ke la uzanto havas glatan spektadon, la kliento unue petos la unuan pecon de la servilo kaj poste petos la sekvan pecon dum tiu peco ludas.
Prilabora Vico
Ĉiu vidbendo havas multajn pecojn, kaj Netflix uzos plurajn samtempajn laboristojn por analizi ilin, do necesas prilabora vico. Aldonante ilin al la vico, ĉi tio fariĝas pli simpla.
La laborpostenoj estos kolektitaj de la laboristoj (aŭ kodiloj, kiujn ni traktos poste), kodigitaj en diversaj formatoj, kaj poste stokitaj en la distribua dosierstokado.
Video Kodigo
Gravas konverti kaj konservi la videopecojn en pluraj formatoj, por ke spektantoj povu aliri ilin uzante la teknologion kaj interretan konekton, kiuj plej bone funkcias por ili.
La vidbendo povas esti vidita sur tekkomputilo, telefono, televido aŭ aliaj aparatoj fare de spektantoj. La optimumaj formatoj por diversaj aparatoj diferencas unu de la alia.
En simila vejno, diversaj spektantoj povus utiligi diversajn bendolarĝojn por aliri la interreton.
Iuj spektantoj povus facile elsendi alt-rezoluciajn filmojn depende de la rapideco de sia interreta konekto aŭ bendolarĝo, dum tiuj kun malpli granda bendolarĝo povos multe pli facile elsendi malkvalitajn filmetojn.
Malfermu Konekti
Kiam vi uzas vian retumilon por peti Netflix.com, via ISP (Interreta Servoprovizanto) vere petas establi konekton inter via komputilo kaj la Netflix-servilo.
Via ISP kontaktas la Netflix IP-adreson en via nomo kaj resendas la rezulton al vi. La spektantaro en malproksima nacio kiel Tokio spertos gravajn malfruojn en elsendado kaj ricevado de signaloj pro la koncentriĝo de ĉi tiuj serviloj en Usono.
Kun filmetoj, prokrastoj multe pli zorgas, ĉar multaj datumoj devas esti transdonitaj al la spektanto, kaj se ĝi estas, la streaming estos prokrastita kaj la uzantsperto suferos.
Netflix uzas lertan teknikon por solvi la problemon. Ĝi estas konata kiel Open Connect (OC). Open Connect estas la CDN kiun Netflix uzas (Content Delivery Network).
Por konservi interretajn informojn kaj liveri ĝin rapide al konsumantoj reduktante la fizikan distancon inter la uzanto kaj la materialo, CDN estas reto de disvastigitaj serviloj kaj rilataj datumcentroj.
Ŝarĝi ekvilibron
A ununura aplikaĵo servilo ne kapablas trakti la volumon de petoj (inkluzive de alŝutado, serĉado kaj rigardado de petoj) kiuj alvenas ĉiun sekundon.
Devas ekzisti ŝarĝbalancilo por efike distribui la laborkvanton tra la multaj serviloj, ĉar estas pluraj serviloj implikitaj.
Netflix uzas konstantan haĉadon por distribui ŝarĝojn inter serviloj ĉar ĝi povas trakti servilmalsukcesojn kaj alĝustigi la instaladon de pliaj serviloj facile.
Ĉar la populareco de ĉiu video varias, la realaj serviloj, kiuj gastigas ĉi tiujn filmojn, povus sperti neegalan ŝarĝon. Uzante dinamikajn HTTP-alidirektojn, kiuj permesas al okupata servilo deturni novan peton al malfermita servilo, ni povas ripari ĉi tiun problemon.
Konsideroj Dum Disvolvado de Video Streaming Apliko
Trovu kaj Disvolvu Vian Niĉon
Kun tiom da diversaj specoj de materialo disponeblaj, de distro ĝis edukado ĝis taŭgeco, estas grave konstrui diferencigilon kun specialeca specialaĵo. Vi povas krei platformon por dokumentaj filmoj aŭ sendependaj filmoj.
Monetigo de la Apliko
Disrompi tradiciajn monetigajn ŝablonojn povas rezultigi novigon kaj kreskon. Planoj ĉiam devas esti adaptitaj al la celgrupo.
Ĉar la oficantoj jam monopoligis la merkaton, vi povas provi moneti senpagajn membrecojn per reklamoj aŭ produkta lokigo.
Kune kun ĉi tio, se vi volas konstrui tutmondan streaming-servplatformon, vi devas konsideri la multvalutajn bezonojn.
Pli bona Sperto
La agado de la programo devus esti plibonigita por randaj cirkonstancoj kiel malrapida interreto aŭ uzantoj kun limigita aliro.
Streaming videoj
Ne nur Netflix elsendas enhavon, sed ĝi ankaŭ uzas uzant-inĝenierajn teknikojn kaj personecigitajn sugestojn por konservi uzantojn alkroĉitajn al la servo.
Planu establi fluan servon similan al Netflix kun emfazo pri datuma analizo kaj uzanta personigo.
Administri la multajn rolojn de la Apo
En la Netflix-aplikaĵo, uzantvido estas simple unu el pluraj uzantroloj. Planado estas postulata por diversaj uzantoj kaj ilia aliro, inkluzive de la administranto, videoposedanto, partneroj, moderigaĵoj ktp.
konkludo
Konklude, jen kiel videofluaj servoj kiel Netflix, Jutubo kaj aliaj enŝipigitaj videoj, konservas ilin kaj montras ilin al milionoj da konsumantoj.
Kvankam ĉiu el ĉi tiuj aplikoj povas havi kelkajn kromajn funkciojn kiuj distingas ilin, la fundamenta funkcieco baziĝas sur la samaj algoritmoj.
Mi faris mian plejeblon por doni al vi ĝeneralan superrigardon pri la arkitekturo de la streaming-serva sistemo, sed okazas multe pli en la fono.
Mi sincere esperas, ke vi trovos ĉi tiun scion valora kaj uzos ĝin.
Lasi Respondon