nagy terhelések Architecture

Építészeti megoldások - az alapja minden alkalmazást. Beleértve az alkalmazásokat nagy terhelés. Fontos megérteni, hogy a webes alkalmazás architektúra meghatározza a 95% -át a sikeres munkáját. Beleértve a képességét, hogy kezelni a stresszt.

tervezési elvek

Fejlődő sikeres, annyira, webes alkalmazás, meg kell értened, kialakításának elvei nagy rendszerekhez.

Soha nem lehet tudni, mi fog történni holnap a kérelmet. Lehet, hogy a felhasználók száma nőtt 5-ször. Talán élesen kezd szert népszerűségre másodlagos funkciója. És ez új problémákat. Minél több a rendszer, annál bonyolultabb (= kevésbé hatékony) lesz a hosszú távú tervezést.

A siker a munka nagy alkalmazások jelenti, hogy nem részletes tervezése minden szempontból. A fő erőfeszítést meg kell irányulnia, a rendszer rugalmassága. Rugalmasság lehetővé teszi, hogy gyorsan változtatni. Ez a legfontosabb tulajdonsága minden gyorsan növekvő rendszer.

fokozatos növekedése

Ne próbálja megjósolni a hangerőt a közönség az elkövetkező évre. Ugyanez vonatkozik az alkalmazás architektúra. Az alapja a sikeres fejlődés - fokozatos megoldásokat. Ez vonatkozik mind a szoftver és hardver.

Ha elkezd egy új alkalmazás, nincs értelme csupán az, hogy az infrastruktúra, amely támogatni tudja a több millió látogató. Használja a felhő, hogy a fogadó új projektek. Ez csökkenti a költségeit a szerver és egyszerűsíti a menedzsment.

Sok felhő tárhely szolgáltatást nyújtanak magánhálózat. Ez lehetővé teszi a biztonságos használatát több szerver közvetlenül a felhő. Így lesz képes elvégezni az első lépéseket a skála nélkül kerülésének fizika.

egyszerű megoldások

Egyszerű megoldások fejlesztésére rendkívül nehéz. Mindazonáltal, ez jobb, hogy időt és energiát, hogy egyszerűsítse a döntések (hogyan kell tervezni és felhasználók számára). A rugalmas rendszer nem bonyolult.

progresszív változások

A munka egy nagy projekt nagyon hasonlít a letöltés, mint a progresszív JPEG képeket. Mozog nem fokozatosan és kiszámíthatatlanul. Meg kell folyamatosan finomítani és testre különböző megoldások, hogy váltani egyikről a másikra.

95% százalékos

nagy terhelések Architecture

Tegyünk egy szabály 95% percentilis: Invest időben csak 95% -a funkcionális szoftver. Dobja ki a maradék 5% - speciális eseteket, melyek a szövődmény a rendszer.

Hangsúlyozzák fontos. Ne felejtsük el, akkor mindig több feladatot időt a döntést. Tedd prioritások jobb - megoldani a felmerülő problémákat a felhasználók többsége.

építészeti megoldások

Skálázása bármilyen webes alkalmazás - egy fokozatos folyamat, amely magában foglalja:
  1. Terhelés elemzése.
  2. Meghatározása leginkább kitett része a terhelést.
  3. A terhelő ilyen oldalak az egyes összetevők és azok optimalizálása.
  4. Ismételje az 1. lépést.

1. Az egyszerű építészet a webes alkalmazások

Az új alkalmazás általában fut egy szerveren futó, és a web szerver és az adatbázis és az alkalmazás maga:

nagy terhelések Architecture

Ez érthető is, hiszen takarít meg időt és pénzt kezdeni. Használja ezt a megközelítést kezdeni. Ha nem félsz, hogy ellenálljon a kiindulási terhelés - figyelembe teljesítményű szerver bérleti díj. Csak kivételes esetekben, amikor feltétlenül tudni biztosan egy nagyszerű kiindulási terhelés, egyenesen, amit az alábbiakban ismertetünk.

2. Office adatbázis

A legtöbb esetben az első csomópont, amely terhelés alatt egy adatbázis. Ez érthető. Minden kérést a felhasználó számára, hogy az alkalmazás - ez általában 10-100 adatbázis-lekérdezések:

nagy terhelések Architecture

A szünet a munkát, amikor a mozgó

Izolálása után MySQL egy szerveren, biztosítják az optimális beállítást.

3. Office Web szerver

Továbbá a webkiszolgáló sorban. Ő választása, hogy egy csomópont, hogy elhagyja több erőforrást egy alkalmazás (ebben a példában - PHP):

# Minden fájl statikus nginx kap hivatkozás nélkül a háttérben

Ha ön használ egy boot fájlt, akkor ki kell választania fájltárolást egyetlen csomópontra (- lásd alább).

4. Néhány PHP backend

Ha a terhelés növekszik, webes alkalmazás fokozatosan elkezd dolgozni lassabban. Egy bizonyos ponton, az ok abban rejlik, nagyon megvalósítása. Ezután meg kell adnunk néhány PHP backend:

nagy terhelések Architecture

Minden backend fontos, hogy ugyanezt a konfigurációt. Nginx képes a teher ellensúlyozására közöttük. Ehhez ki kell választani a backend listája upstream és használja a konfiguráció:

# Nginx majd egyenletesen oszlatja el a terhelést a megadott backend

Használhatja a súlya a backend, ha némelyik sokkal hatékonyabbak, mint mások:

# Minden 16 kéréseket backend feldolgozza az első 10, a második - 2, a harmadik - 4

Ha elkezdi használni több backend kéréseket egy felhasználó ki van téve a különböző szervereken. Ez megköveteli a használatát egyetlen adattár az ülések, mint a Memcache.

5. gyorsítótárral

Connection gyorsítótár-szerverek - az egyik legegyszerűbb feladatok:

nagy terhelések Architecture

Memcache lehetővé teszi a használatát több szerver egy standard csomag:

Memcache # Csatlakozás több szerver egyszerre

Memcache függetlenül a rakományt a szerverek között használható. Ehhez azt egy algoritmus konstans hasítás. Meg kell, hogy kövesse az elmozdulás és új berendezések időben.

6. feladat sorok

Feladat sorok segítségével végez nehéz művelet aszinkron. nem lassul le a fő alkalmazás. Építészetileg ez így néz ki:

nagy terhelések Architecture

A sorbanállási szerver elfogadja a feladatokat az alkalmazást. Munkás-szerver folyamat feladatokat. Számuk növelni kell, ha az átlagos munkahelyek száma a sorban fokozatosan nőni fog.

7. DNS kiegyensúlyozó

Ahhoz, hogy ezt a mechanizmust, telepíteni kell több azonos frontends. Majd a DNS meg kell határozni, és a felvételeket:

8. Fájltárolás

A helyes megoldás az, hogy külön szervert letöltésére, tárolására és feldolgozására fájlok:

nagy terhelések Architecture

A gyakorlatban ez úgy végrehajtani:
  1. Lekötött külön aldomainje fájlszerver.
  2. A szerver, nginx, és kiderül, egy kis alkalmazás, amely képes megmenteni (és kezelésére, ha szükséges) fájlokat.
  3. Lerakódás keletkezik hozzáadásával új szerverek és aldomainek (images1, images2, images3 stb).

fájlok letöltése

Betöltése kényelmes elmozdulás a kliens oldalon. Ezután az űrlap elküldi a kérelmet egy adott kiszolgáló:

Domének véletlenszerűen generált a meglévők:

AJAX loading

Ne feledkezzünk meg a CORS:

# Ez küld AJAX kérések domain tartomány ruhighload.com letöltés

nagy terhelések Architecture

anyagok a témában

Kapcsolódó cikkek