- 2024-02-24
- Papp Miklós
Mik azok a microservice tervezési minták?
A mikroszolgáltatás független alkalmazáskomponensekből áll, amelyek egy rendszer számára specifikus funkciókat hajtanak végre. Egyetlen példánya vagy több példánya is lehet a funkcionális követelmények alapján.
A kliensoldali (webes felület és mobilos UI) és a köztes rétegekben lévő más integrált szolgáltatásokkal együtt ezek a mikroszolgáltatások mindegyike egy teljes architektúrát alkot.
Az ilyen mikroszolgáltatás-architektúra tervezése, fejlesztése és telepítése azonban kihívásokkal jár, mint például:
- Közös hozzáférés kezelése
- Adatkonzisztencia
- Szolgáltatások biztonsága
- Szolgáltatások közötti kommunikáció
- Függőségkezelés
Itt jönnek a képbe a mikroszolgáltatás tervezési minták (microservice design patterns)! Ezek olyan referenciaarchitektúrás minták, amelyek segítenek a szolgáltatások hatékonyabb adminisztrációjában, ezeknek a kihívásoknak a leküzdésében és a teljesítmény maximalizálásában.
Sőt, a mikroszolgáltatásokban az Ön felhasználási eseteihez megfelelő tervezési minták alkalmazása növelheti a komponensek újrafelhasználhatóságát, ami végül a fejlesztési idő és erőfeszítések csökkenését eredményezi. Idővel az újrafelhasználhatóság kiküszöböli a szükségtelen újrafejlesztést az alkalmazás módosításainál.
A 10 legfontosabb microservice tervezési minta
Fontos megjegyezni, hogy a mikroszolgáltatás tervezési minták nem csodaszerek! Minden tervezési mintának megvannak a maga előnyei és hátrányai. A következőkben az alábbi 10 tervezési mintát mutatjuk be röviden:
- Strangler Fig
- SAGA
- Aggregator
- Event Source
- CQRS
- Sidecar
- Database per microservice
- Backend For Frontends (BFF)
- Api Gateway
- Circuit Braker
3. Aggregátor minta
Az Aggregátor egy olyan tervezési minta, amely mikroszolgáltatás-architektúrákban használható az egyes mikroszolgáltatások által visszaadott adatok kombinálására.
Miért van szükség az Aggregátor mintára?
A mikroszolgáltatás-architektúrákban egy nagy, komplex alkalmazást kisebb, önállóan telepíthető szolgáltatásokra bontunk. Ez a megközelítés számos előnnyel jár, például a skálázhatósággal és a hibamezősítéssel, de hátrányként megnehezíti az adatok egyesítéseit. Az aggregátor minta ezt a problémát hivatott megoldani.
Hogyan működik az Aggregátor minta?
Az aggregátor minta lényege, hogy egy külön szolgáltatás felel az egyes mikroszolgáltatások lekérdezéséért, az adatok összegyűjtéséért és a válaszküldésért. Ez a szolgáltatás a következő lépéseket hajtja végre:
- Kérés fogadása: Az aggregátor szolgáltatás megkapja a kérést a klienstől.
- Szolgáltatások lekérdezése: Az aggregátor szolgáltatás több másik mikroszolgáltatást hív meg a szükséges adatok lekérésére.
- Válaszok összeállítása: Az aggregátor összeállítja a válaszokat az egyes mikroszolgáltatásoktól.
- Válasz küldése: Az aggregátor elküldi a kombinált választ a kliensnek.
Az Aggregátor minta megvalósítási módjai:
Az aggregátor minta háromféle módon valósítható meg:
- Scatter-gather minta: Az aggregátor egyszerre küldi ki a kéréseket a különböző szolgáltatásokhoz, majd összegyűjti a válaszokat.
- Láncolt minta: Az aggregátor egymás után hívja meg a szolgáltatásokat, és az előző szolgáltatás válasza alapján küldi ki a következő kérést.
- Elágazó minta: Az aggregátor minta és a láncolt minta kombinációja, amely lehetővé teszi, hogy egyszerre több független mikroszolgáltatástól érkezzenek kérések vagy válaszok.
Az Aggregátor minta előnyei:
- Skálázhatóság: Az aggregátor szolgáltatás függetlenül skálázható a többi mikroszolgáltatástól.
- Könnyű megértés és implementáció: Az aggregátor minta viszonylag egyszerűen megérthető és implementálható.
- Rugalmasság a belső szolgáltatások interfészeiben: Az aggregátor nem szorosan kötődik az egyes mikroszolgáltatások interfészeihez.
- Egységes hozzáférési pont a mikroszolgáltatásokhoz: Az aggregátor egyetlen hozzáférési pontot biztosít a kliensek számára a mikroszolgáltatásokhoz.
Példa az Aggregátor mintára:
Egy egyetemi mikroszolgáltatás-alkalmazásban az aggregátor minta használatával kombinálhatjuk a hallgatói adatokat, a jegyeket és a tagsági információkat egyetlen válaszban, amelyet a Grading System és az Enrichment Program System megkaphat.
Összefoglalás:
Az Aggregátor minta hasznos eszköz az adatok összegyűjtésére és kombinálására mikroszolgáltatás-architektúrákban. Könnyen megvalósítható, és számos előnyt kínál, például a skálázhatóságot és a rugalmasságot.