Tartalomjegyzék[Elrejt][Előadás]
Meglehetősen jó esély van arra, hogy streamelt valamit, ha bármilyen időt töltött az interneten.
A streamelés az egyik legelterjedtebb felhasználási mód az internet legismertebb alkalmazásainak, legyen szó YouTube-ról, Spotify-ról, Netflixről vagy száz másik alkalmazásról.
Figyelembe véve azonban, hogy a streamelés mennyire hétköznapi, egyszerű természetesnek venni. Például: Mi is az a streaming pontosan?
Bármilyen élő vagy rögzített médiaanyagot, amelyet az interneten számítógépekre és mobileszközökre küldenek, és valós időben lejátszanak, streamingnek nevezzük.
A streaming anyagok gyakori típusai közé tartoznak a podcastok, webcastok, mozgóképek, televíziós műsorok és zenei videók.
A médiaelemek, mint például a zene, a videó és más fajták, egymást követő adatcsomagokban vannak megtervezve és továbbítva, így azonnal streamelhetők.
Egy megfelelő eszköz, hozzáférés egy streaming szolgáltatáshoz vagy alkalmazáshoz, valamint egy gyors, megbízható, nagy sebességű internetkapcsolat mindössze annyi, amire szüksége van a streameléshez.
Megjegyzés: Példaként egy video streaming szolgáltatást fogunk használni.
Ez a bejegyzés alapos pillantást vet a streaming szolgáltatás rendszerének kialakítására és a videó streaming alkalmazások fejlesztése során figyelembe veendő kulcsfontosságú tényezőkre.
Rendszerkövetelmény
A világ legnépszerűbb video streaming szolgáltatásai közé tartozik a YouTube és a Netflix. A felhasználói élmény javítása érdekében felépítésük számos elemet tartalmaz.
Egy ilyen szolgáltatás magában foglalja a népszerű filmeket, a számlázást, az AI-alapú ajánlórendszereket és a későbbi megtekintési funkciókat, de mi a lényeges elemekre koncentrálunk.
Alapvető tulajdonságok
A következő lehetőségeket építettük be koncepciónkba a video streaming szolgáltatás:
- A tartalom létrehozói közzétehetnek videókat.
- A nézők számos eszközt használhatnak videók megtekintéséhez (mobil, TV stb.).
- A videókon a felhasználók megjegyzést, tetszésnyilvánítást vagy nemtetszést jelezhetnek.
- A videók címe alapján lehet rájuk keresni.
- Ahhoz, hogy ezeket a statisztikákat megjelenítse a felhasználók számára, a rendszer tárolhatja a megtekintéseket, a tetszésnyilvánításokat és a nemtetszéseket.
A rendszer céljai
- Nem szabad pufferelést végezni, hogy a nézők valós időben nézhessék meg a videókat.
- A videó tárolásának megbízhatónak kell lennie. Nem szabad elveszítenie a feltöltött videókat.
- A felhasználók számának növekedésével a rendszernek skálázhatónak kell lennie.
- Az alacsony késleltetésnek és a magas rendelkezésre állásnak a rendszer jellemzőinek kell lennie. Ebben a helyzetben a következetesség nem olyan fontos, mert nem árt, ha a felhasználó vár egy kicsit, mielőtt megnézné a frissen beküldött filmet.
Egyetlen szerver nem tudja kezelni az adatmennyiséget, mivel a rendszernek rendszeresen erős forgalmat kell kezelnie. A rendszer kiszolgálására szerverek egy csoportját fogják használni.
A kliensek sebességét nem érintheti észrevehető hatás, még akkor sem, ha az egyik szerver összeomlik.
Magas szintű építészet
A videó streaming program három különböző típusú kérés egyikét képes elfogadni:
- Feltöltés (írás)
- Keresés (olvasás)
- Megtekintés (olvasás)
Mivel az olvasási lekérdezések (keresés és nézet) gyakran többszörösek, mint az írási kérések (feltöltés), mindegyiket külön kiszolgálófürt kezeli.
Mivel a program intenzív olvasást igényel, több szervert kell beállítania az olvasási kérések kezelésére, mint a feltöltésekre.
Az ügyfél minden kérését a megfelelő mikroszolgáltatáshoz irányítja a terhelés elosztó amikor megérkezik.
Feltöltési szolgáltatás
A feltöltési szolgáltatás, amely feldolgozza a videót, feltölti az Open Connect szerverekre, és minden felhasználó számára elérhetővé teszi, egy feltöltési kérést teljesít.
Keresés szolgáltatás
A terheléselosztó elküldi a keresési kérelmet a keresési mikroszolgáltatásnak, amely elküldi azt a Netflix Elastic keresésének. Az ügyfél megkapja a rugalmas keresési választ.
Az Elasztikus keresést, egy hihetetlenül méretezhető, teljes szövegű, nyílt forráskódú keresőmotort a Netflix használja arra, hogy videók milliói között keressen.
A rugalmas keresést a Netflix használja az ügyfélszolgálati műveletek elemzésére.
Szolgáltatás megtekintése
A megtekintési kérelmek többsége nem kerül elküldésre a terheléselosztónak vagy a Netflix szervereinek. Ehelyett a felhasználók a helyi internetszolgáltatókhoz csatlakoznak, és közvetlenül a legközelebbi Open Connect szerverről táplálják őket.
Ha azonban a kért videó nem érhető el, akkor elküldi a terheléselosztónak és a megtekintési mikroszolgáltatásnak.
A videót ezután megkeresi a metaadat-adatbázisban, lekéri a metaadatokban megadott útvonalról, és továbbítja az ügyfélnek.
Ez a technika természetesen magában foglalja a késleltetést is, ezért gyakorlatilag minden nézetkérést az Open Connecten keresztül biztosítanak.
Videók feltöltése
A YouTube fő célja egy film vagy videó feltöltése. A videó streaming szolgáltatásnak számos akadályt le kell küzdenie, mielőtt egy videót elérhetővé tenne fogyasztói számára.
Darabokban tartás
Minden beküldött videó több kisebb fájlra lesz felosztva, nem pedig egyetlen hatalmas fájlként.
Ez elengedhetetlen, mivel a tartalomgyártók hatalmas videókat tudnak beküldeni. Egyetlen nagy fájl feldolgozása vagy streamelése eltarthat egy ideig.
A nézőnek nem kell letöltenie a teljes videót ahhoz, hogy lejátszhassa, ha azt elmenti és darabokban elérhetővé teszi.
Annak érdekében, hogy a csonkok között kevés késleltetési idő legyen, és a felhasználó zökkenőmentes megtekintési élményben legyen része, a kliens először az első darabot kéri le a szervertől, majd a következő darabot, miközben az adott darab lejátszása van.
Feldolgozási sor
Minden videónak számos darabja van, és a Netflix egyidejűleg több dolgozót is igénybe vesz ezek elemzéséhez, ezért feldolgozási sorra van szükség. Ha felveszi őket a sorba, ez egyszerűbbé válik.
A munkákat a dolgozók (illetve kódolók, amelyekről a következőkben tárgyaljuk) összegyűjtik, különböző formátumokba kódolják, majd az elosztott fájltárolóban tárolják.
Video kódolás
Kulcsfontosságú, hogy a videódarabokat többféle formátumban konvertálja és mentse, hogy a nézők a számukra legmegfelelőbb technológia és internetkapcsolat használatával érhessék el őket.
A videót laptopon, telefonon, tévén vagy egyéb kütyüben láthatják a nézők. A különböző eszközök optimális formátumai különböznek egymástól.
Hasonló módon a különböző nézők különféle sávszélességeket használhatnak az internet elérésére.
Egyes nézők internetkapcsolatuk sebességétől vagy sávszélességüktől függően könnyedén streamelhetnek nagy felbontású filmeket, míg a kisebb sávszélességűek sokkal könnyebben streamelhetik az alacsony minőségű videókat.
Nyissa meg a Csatlakozás lehetőséget
Amikor böngészőjével kéri a Netflix.com webhelyet, az internetszolgáltatót (internetszolgáltatót) valóban felkérik, hogy létesítsen kapcsolatot a számítógépe és a Netflix szervere között.
Az internetszolgáltató felveszi a kapcsolatot a Netflix IP-címével az Ön nevében, és visszaküldi Önnek az eredményt. Egy olyan távoli országban, mint Tokió, a közönség jelentős késéseket fog tapasztalni a jelek átvitelében és vételében, mivel ezek a szerverek az Egyesült Államokban vannak.
A videóknál a késések sokkal nagyobb gondot okoznak, mivel sok adatot kell eljuttatni a nézőhöz, és ha igen, akkor a streamelés késik, és a felhasználói élmény is csorbát szenved.
A Netflix okos technikát alkalmaz a probléma megoldására. Open Connect (OC) néven ismert. Az Open Connect a Netflix által használt CDN (Content Delivery Network).
Az online információk gyorsítótárazása és a fogyasztókhoz való gyors eljuttatása érdekében a felhasználó és az anyag közötti fizikai távolság csökkentésével a CDN szétszórt szerverek és kapcsolódó adatközpontok hálózata.
Terhelés elosztás
A egyetlen alkalmazás A szerver nem tudja kezelni a másodpercenként érkező kérések mennyiségét (beleértve a feltöltési, keresési és megtekintési kéréseket).
Egy terheléselosztónak kell lennie a munkaterhelés hatékony elosztásához a számos szerver között, mivel több szerverről van szó.
A Netflix állandó kivonatolást alkalmaz a terhelések szerverek közötti elosztására, mivel képes kezelni a szerverhibákat, és könnyedén képes további szerverek telepítésére.
Mivel az egyes videók népszerűsége eltérő, az ezeket a filmeket tároló szerverek egyenlőtlen terhelést tapasztalhatnak. Dinamikus HTTP-átirányításokkal, amelyek lehetővé teszik, hogy egy elfoglalt szerver átirányítsa az új kérést egy nyitott szerverre, meg tudjuk oldani ezt a problémát.
Megfontolások a videostreaming alkalmazás fejlesztésénél
Keresse meg és fejlessze a rést
Mivel sokféle anyag áll rendelkezésre, a szórakoztatástól az oktatáson át a fitneszig, kritikus fontosságú egy speciális szakterületen alapuló megkülönböztetés kialakítása. Létrehozhat egy platformot dokumentumfilmek vagy független filmek számára.
Az alkalmazás bevételszerzése
A hagyományos bevételszerzési minták megzavarása innovációt és növekedést eredményezhet. A terveket mindig a célközönségre kell szabni.
Mivel az inkumbens szolgáltatók már monopolizálták a piacot, hirdetésekkel vagy termékmegjelenítéssel próbálhatja meg az ingyenes tagságból pénzt szerezni.
Ezzel együtt, ha globális streaming szolgáltatási platformot szeretne felépíteni, figyelembe kell vennie a több pénznemre vonatkozó igényeket.
Jobb élmény
A program teljesítményét fokozni kell olyan szélsőséges körülmények esetén, mint például a lassú internet vagy a korlátozott hozzáférésű felhasználók.
Videók streamelése
A Netflix nemcsak tartalmat sugároz, hanem felhasználói tervezési technikákat és személyre szabott javaslatokat is alkalmaz, hogy a felhasználók lekötve maradjanak a szolgáltatásban.
Tervezze meg a Netflixhez hasonló streaming szolgáltatás létrehozását, amely az adatelemzésre és a felhasználók testreszabására helyezi a hangsúlyt.
Az alkalmazás számos szerepének kezelése
A Netflix alkalmazásban a felhasználói nézet egyszerűen egy a számos felhasználói szerep közül. Tervezésre van szükség számos felhasználó és hozzáférésük esetében, beleértve az adminisztrátort, a videó tulajdonosát, a partnereket, a moderátorokat stb.
Következtetés
Összefoglalva, az olyan videostreaming szolgáltatások, mint a Netflix, a YouTube és más fedélzeti videók, így követik nyomon és mutatják meg őket fogyasztók millióinak.
Bár ezeknek az alkalmazásoknak van néhány további funkciója, amelyek megkülönböztetik őket egymástól, az alapvető funkciók ugyanazokon az algoritmusokon alapulnak.
Minden tőlem telhetőt megtettem, hogy általános áttekintést adjak a streaming szolgáltatás rendszer architektúrájáról, de a háttérben még sok más történik.
Őszintén remélem, hogy értékesnek találja ezt a tudást, és hasznosítani fogja.
Hagy egy Válaszol