Innholdsfortegnelse[Gjemme seg][Forestilling]
Det er en ganske grei mulighet for at du har streamet noe hvis du har brukt tid på nettet.
Streaming er en av de vanligste bruksområdene for internetts mest kjente apper, enten det er via YouTube, Spotify, Netflix eller hundre andre.
Men med tanke på hvor vanlig streaming er, er det enkelt å ta det for gitt. For eksempel: Hva er strømming, nøyaktig?
Alt mediemateriale, enten live eller innspilt, som sendes over internett til datamaskiner og mobile enheter og spilles av i sanntid, kalles strømming.
Vanlige typer strømmemateriale inkluderer podcaster, webcaster, filmer, TV-programmer og musikkvideoer.
Medieelementer som musikk, video og andre typer planlegges og overføres i påfølgende datapakker slik at de kan streames umiddelbart.
En passende enhet, tilgang til en strømmetjeneste eller app og en rask, pålitelig høyhastighets internettforbindelse er alt du trenger for å streame.
Merk: Vi bruker en videostrømmetjeneste som eksempel.
Dette innlegget vil ta en dyp titt på strømmetjenestens systemdesign og nøkkelfaktorer som må tas i betraktning når du utvikler videostrømmeapplikasjoner.
System Krav
Blant de mest populære videostrømmetjenestene i verden er YouTube og Netflix. For å forbedre brukeropplevelsen inkluderer deres arkitektur en rekke elementer.
En slik tjeneste inkluderer populære filmer, fakturering, AI-baserte anbefalingssystemer og se senere funksjonalitet, men vi vil konsentrere oss om de essensielle elementene.
Kjernekvaliteter
Vi har inkludert følgende funksjoner i konseptet vårt for en videostreaming service:
- Skapere av innhold kan legge ut videoer.
- Seere kan bruke mange enheter for å se videoer (mobil, TV osv.).
- På videoer kan brukere kommentere, like eller mislike.
- Titlene på videoer kan brukes til å søke etter dem.
- For å vise denne statistikken til brukere, kan systemet lagre visninger, liker og misliker.
Systemmål
- Det skal ikke være noen bufring slik at seerne kan se videoer i sanntid.
- Lagring for video bør være pålitelig. Du bør ikke miste videoene du har lastet opp.
- Med en økning i brukere, bør systemet være skalerbart.
- Lav ventetid og høy tilgjengelighet bør være funksjoner i systemet. I denne situasjonen er ikke konsistens like viktig fordi det er greit for en bruker å vente litt før han ser en nyinnsendt film.
En enkelt server kan ikke håndtere datavolumet siden systemet må håndtere sterk trafikk på jevnlig basis. En gruppe servere vil bli brukt til å betjene systemet.
Det skal ikke være noen merkbare hastighetspåvirkninger for klienter selv om en server krasjer.
Arkitektur på høyt nivå
Et videostreamingprogram kan godta en av tre forskjellige typer forespørsler:
- Last opp (skriv)
- Søk (les)
- Se (les)
Siden leseforespørsler (søk og visning) ofte vil være flere ganger hyppigere enn skriveforespørsler (opplasting), håndteres hver av dem av en egen klynge med servere.
Fordi programmet er leseintensivt, må du sette opp flere servere for å håndtere leseforespørsler enn opplastinger.
Hver forespørsel fra en klient blir rutet til riktig mikrotjeneste av lastbalanser når den mottas.
Last opp tjeneste
Opplastingstjenesten, som behandler videoen, laster den opp til Open Connect-servere og gjør den tilgjengelig for alle brukere, oppfyller en opplastingsforespørsel.
Søketjeneste
Lastbalanseren sender søkeforespørselen til søkemikrotjenesten, som deretter sender den til Netflixs Elastic-søk. Klienten mottar Elastisk søks svar.
Elastisk søk, en utrolig skalerbar fulltekst-søkemotor med åpen kildekode, brukes av Netflix til å søke gjennom millioner av videoer.
Elastisk søk brukes av Netflix for å analysere kundeserviceoperasjoner.
Se tjenesten
Flertallet av visningsforespørslene vil ikke bli sendt til belastningsbalanseren eller Netflix sine servere. I stedet vil brukere koble seg til lokale Internett-leverandører og mates rett fra nærmeste Open Connect-server.
Men hvis den forespurte videoen ikke er tilgjengelig, sendes den til belastningsbalanseren og visningsmikrotjenesten.
Videoen søkes deretter i metadatadatabasen, hentes fra banen spesifisert i metadataene og overføres til klienten.
Selvfølgelig inkluderer denne teknikken latens, og det er grunnen til at praktisk talt alle visningsforespørsler leveres via Open Connect.
Last opp videoer
YouTubes hovedformål er å laste opp en film eller video. En videostrømmetjeneste må overvinne en rekke hindringer før den gjør en video tilgjengelig for forbrukerne.
Holder i stykker
Hver innsendt video vil bli delt opp i flere mindre filer i stedet for å bli holdt som en enkelt stor fil.
Dette er viktig siden innholdsprodusenter kan sende inn enorme videoer. En enkelt stor fil kan ta en stund å behandle eller strømme.
Seeren trenger ikke å laste ned hele videoen for å spille den hvis den er lagret og gjort tilgjengelig for dem i deler.
For å sikre at det er liten forsinkelse mellom biter og at brukeren har en jevn seeropplevelse, vil klienten først be om den første delen fra serveren og deretter be om den følgende delen mens den delen spilles.
Behandler kø
Hver video har mange biter, og Netflix vil bruke flere samtidige arbeidere for å analysere dem, og derfor kreves det en behandlingskø. Ved å legge dem til i køen gjøres dette enklere.
Jobbene vil bli samlet inn av arbeiderne (eller kodere, som vi vil dekke neste), kodet til forskjellige formater og deretter lagret i det distribuerte fillageret.
video Encoding
Det er avgjørende å konvertere og lagre videobitene i flere formater slik at seerne kan få tilgang til dem ved hjelp av teknologien og internettforbindelsen som fungerer best for dem.
Videoen kan sees på en bærbar datamaskin, telefon, TV eller andre dingser av seerne. De optimale formatene for ulike enheter er forskjellige fra hverandre.
På samme måte kan forskjellige seere bruke forskjellige båndbredder for å få tilgang til internett.
Noen seere kan enkelt streame filmer med høy oppløsning, avhengig av hastigheten på internettforbindelsen eller båndbredden, mens de med mindre båndbredde vil kunne streame lavkvalitetsvideoer mye lettere.
Åpne Connect
Når du bruker nettleseren din til å be om Netflix.com, blir din ISP (Internet Service Provider) virkelig bedt om å opprette en forbindelse mellom datamaskinen og Netflix-serveren.
Internett-leverandøren din kontakter Netflix IP-adressen på dine vegne og returnerer resultatet til deg. Publikum i en avsidesliggende nasjon som Tokyo vil oppleve betydelige forsinkelser i sending og mottak av signaler på grunn av konsentrasjonen av disse serverne i USA.
Med videoer er forsinkelser mye mer et problem siden mye data må overføres til seeren, og hvis det er det, vil strømmingen bli forsinket og brukeropplevelsen lider.
Netflix bruker en smart teknikk for å fikse problemet. Det er kjent som Open Connect (OC). Open Connect er CDN som Netflix bruker (Content Delivery Network).
For å bufre online informasjon og levere den raskt til forbrukere ved å redusere den fysiske avstanden mellom brukeren og materialet, er CDN et nettverk av spredte servere og tilhørende datasentre.
Lastbalansering
A enkelt søknad serveren er ikke i stand til å håndtere volumet av forespørsler (inkludert opplasting, søking og visningsforespørsler) som kommer hvert sekund.
Det må være en belastningsbalanser på plass for å effektivt fordele arbeidsbelastningen på de mange serverne, siden det er flere servere involvert.
Netflix bruker konstant hashing for å fordele belastninger mellom servere fordi det kan håndtere serverfeil og enkelt imøtekomme installasjonen av ekstra servere.
Siden populariteten til hver video varierer, kan de faktiske serverne som er vert for disse filmene oppleve en ulik belastning. Ved å bruke dynamiske HTTP-omdirigeringer, som lar en opptatt server viderekoble en ny forespørsel til en åpen server, kan vi fikse dette problemet.
Hensyn når du utvikler en videostreamingapplikasjon
Finn og utvikle din nisje
Med så mange forskjellige typer materiale tilgjengelig, fra underholdning til utdanning til trening, er det avgjørende å bygge en differensiator med en spesialisert spesialitet. Du kan lage en plattform for dokumentarer eller uavhengige filmer.
Applikasjonens inntektsgenerering
Å forstyrre tradisjonelle inntektsgenereringsmønstre kan resultere i innovasjon og vekst. Planer skal alltid skreddersys til målgruppen.
Fordi de etablerte operatørene allerede har monopolisert markedet, kan du prøve å tjene penger på gratis medlemskap med annonser eller produktplassering.
Sammen med dette, hvis du ønsker å bygge en global strømmetjenesteplattform, må du vurdere behovene i flere valutaer.
Bedre opplevelse
Ytelsen til programmet bør forbedres for edge-omstendigheter som tregt internett eller brukere med begrenset tilgang.
Streaming av videoer
Ikke bare kringkaster Netflix innhold, men den bruker også brukertekniske teknikker og personlige forslag for å holde brukere hekta på tjenesten.
Planlegg å etablere en strømmetjeneste som ligner på Netflix med vekt på dataanalyse og brukertilpasning.
Administrere appens mange roller
I Netflix-appen er brukervisning ganske enkelt én av flere brukerroller. Planlegging er nødvendig for en rekke brukere og deres tilgang, inkludert administrator, videoeier, partnere, moderatorer, etc.
konklusjonen
Avslutningsvis er dette hvordan videostrømmetjenester som Netflix, YouTube og andre ombordvideoer holder oversikt over dem og viser dem til millioner av forbrukere.
Selv om hver av disse applikasjonene kan ha noen få tilleggsfunksjoner som skiller dem fra hverandre, er den grunnleggende funksjonaliteten basert på de samme algoritmene.
Jeg gjorde mitt beste for å gi deg en generell oversikt over strømmetjenestens systemarkitektur, men det er mye mer som skjer i bakgrunnen.
Jeg håper virkelig du vil finne denne kunnskapen verdifull og bruke den.
Legg igjen en kommentar