Az alkalmazások az elosztott architektúrák és mikroszolgáltatások felé vándorolnak. Ez gondokat okoz az adatok karbantartásában és az összetett tranzakciók kezelésében. A saga minták hatékony megoldást kínálnak. Az Amazon Web Services (AWS) számos eszközt és szolgáltatást kínál, amelyek egyszerűvé teszik a Saga-minták megvalósítását. Ez biztosítja a zökkenőmentes tranzakciókezelést az elosztott alkalmazások között.
Ez a cikk elmagyarázza, mik azok a saga-minták, azok összetevői, a támogatott AWS-szolgáltatások és előnyeik.
Mik azok a Saga-minták az AWS-ben?
A Saga minták egy tervezési technika a mikroszolgáltatási architektúrákban, amelyek segítenek a tranzakciók elosztásában más szolgáltatások között, amelyek kölcsönhatásba lépnek az üzleti folyamatok létrehozása érdekében. Egy tranzakció több mikroszolgáltatáson keresztüli végrehajtása nehézségeket okozhat, például adatkonzisztencia-problémákat és rendszerhibákat.
A Saga minta úgy működik, hogy az elosztott tranzakciókat kisebb tranzakciókra bontja „Saga lépései” . Minden egyes 'Saga lépés' egy, a mikroszolgáltatáshoz kapcsolódó műveletet képvisel. Ha egy vagy több „Saga lépései” sikertelen, azonnal megteszik a szükséges lépéseket az alkalmazás állapotának visszaállításához. Tekintse meg az alábbi képet a saga-minta működésének megértéséhez:
Ismerkedjünk meg a legfontosabb összetevőivel:
Melyek a Saga Patterns összetevői az AWS-ben?
A teljes mikroszolgáltatási megoldáshoz több szolgáltatásra van szükség egy elosztott architektúrában. A saga mintának van néhány kulcsfontosságú összetevője, mint például:
- Saga Step
- Saga Orchestrator
- Kártérítés
Beszéljük meg röviden ezeket az összetevőket.
Saga Step
A Saga lépései olyan mikroszolgáltatási műveletek vagy elosztott tranzakciók részeként végrehajtott feladatok, amelyeknek nincs negatív mellékhatása. Többször megismétlődnek, és az ismételt végrehajtás során nem jelentkeznek mellékhatások.
Saga Orchestrator
A saga hangszerelőjének elsődleges feladata a saga sikeres végrehajtásának minden egyes lépésének irányítása és figyelemmel kísérése. A megfelelő lépések megtételekor elindítja az elosztott tranzakciókat. Kompenzációt is biztosít, ha bármelyik lépés meghiúsul.
Kártérítés
Ha a saga folyamata során hibát észlelünk, a hangszerelő gyors és határozott lépéseket tesz, hogy visszaállítsa az előző lépések által bevezetett módosításokat. Ez biztosítja, hogy a rendszer még hibák esetén is fenntartsa a rendet.
Ezek voltak a saga minta elsődleges összetevői. Beszéljük meg a saga-mintákat támogató AWS-szolgáltatásokat.
Melyek a támogatott szolgáltatások Saga-mintái az AWS-ben?
Ezek az Amazon által kínált szolgáltatások, amelyek a saga mintáit követik:
- AWS lépésfunkciók
- AWS lambda
- Amazon DynamoDB
- Amazon SNS és SQS
- Amazon API átjáró
- AWS CDK
- AWS SAM
AWS lépésfunkciók
Az Amazon Web Services Step Functions egy teljesen felügyelt szolgáltatás, amely megkönnyíti a munkafolyamatokat és a mikroszolgáltatások kezelését azáltal, hogy a fejlesztők számára komplex állapotgépeket (saga mintákat) reprezentáló állapotgépeket biztosít. A fejlesztők megtervezhetik az elosztott tranzakciókat a Step Functions használatával, miközben hatékonyan összehangolják azokat.
AWS lambda
Az Amazon Web Services Lambda szerver nélküli számítógépes szolgáltatása lehetővé teszi a fejlesztők számára, hogy a kiszolgálók közvetlen kezelése nélkül futtassák a kódot. Lehetővé teszi a saga mintákat azáltal, hogy Lambda függvényeket hoz létre, amelyek minden lépést a gyökér szinten reprezentálnak. A lépések ábrázolására Lambda függvényeket használó fejlesztők hatékonyan használhatják azt az egyes saga lépések lambdákon keresztüli ábrázolásakor.
Amazon DynamoDB
Az Amazon DynamoDB az AWS NoSQL adatbázis-szolgáltatása, amely teljes mértékben felügyelt. Megbízható adattárolási lehetőségeket kínál. A Saga szervezői használhatják a DynamoDB-t az elosztott tranzakciók nyomon követésére, amint azok előrehaladnak.
Amazon SNS és SQS
A mikroszolgáltatások közötti eseményvezérelt kommunikáció létrehozásához az Amazon Simple Notification Service (SNS) és a Simple Queue Service (SQS) kombinálva van. A Saga lépései ezeket a szolgáltatásokat használják üzenetek közzétételére más mikroszolgáltatások számára bizonyos műveletek végrehajtása után. Ezek a szolgáltatások ezután értesítik a többi mikroszolgáltatást a befejezés állapotáról és az állapotfrissítésekről.
Amazon API átjáró
Az Amazon API Gateway az Amazon felhőszolgáltatása API-k létrehozására, közzétételére és kezelésére. Ezek az API-k bármilyen kívánt szintre méretezhetők. Ez a szolgáltatás összekapcsolja a felhasználót az AWS Lambdával. A lambda tovább kapcsolódik a saga mintákat követő lépésfunkciókhoz.
AWS CDK
Az AWS Cloud Development Kit (CDK) egy keretrendszer és eszköz egyéni felhőmegoldások létrehozásához és üzembe helyezéséhez. Ez egy nyílt forráskódú szolgáltatás. A saga minták architektúrájára és tervezésére épülő alkalmazások telepíthetők ezzel az eszközzel.
AWS SAM
Az AWS kiszolgáló nélküli alkalmazásmodell kiszolgáló nélküli alkalmazások létrehozására szolgál. Ez a keretrendszer is nyílt forráskódú. A saga mintát használó bármely alkalmazás létrehozható az AWS SAM-ot használó szerverek biztosítása nélkül.
Voltak AWS-szolgáltatások, amelyek támogatják a saga-mintákat. Beszéljük meg a saga-minták előnyeit.
Mik a Saga Patterns előnyei az AWS-ben?
Az alábbiakban felsorolunk néhány előnyt, amelyet a saga minták nyújtanak:
Beszéljük meg részletesen az előnyöket.
Elosztott tranzakciókezelés
A Saga minták egyszerű, de hatékony megoldást kínálnak az elosztott tranzakciók kezelésére mikroszolgáltatási architektúrákban. A tranzakciók kezelhető lépésekre bontásával elősegítik az összetett munkafolyamatok egyszerűsítését.
Adatkonzisztencia
A kompenzációs műveletek célja az adatok konzisztenciájának megőrzése még részleges rendszerhibák és részleges tranzakciók esetén is. A fejlesztők a tranzakciós eredményektől függetlenül elérhetik az egyensúlyi állapotot az elosztott rendszerekben, saga mintákat használva.
Hibatűrés
A Saga minták javított hibatűrő képességet biztosítanak a mikroszolgáltatási architektúrák számára azáltal, hogy minden lépésszinten kezelik a hibákat, és kompenzálják a hibákat. Ennek eredményeként az ezeket használó rendszerek gyorsan felépülhetnek a tranzakciók részleges meghibásodásaiból anélkül, hogy az alkalmazás általános teljesítményét befolyásolnák.
Méretezhetőség
A Saga minták vízszintes skálázhatóságot kínálnak, ami lehetővé teszi a rendszerek számára, hogy több mikroszolgáltatási példány hozzáadásával kezeljék a megnövekedett tranzakciós terhelést. Ez a rugalmasság felbecsülhetetlen a modern alkalmazások számára, amelyeknek hatékonyan kell kezelniük a változó terheléseket.
Ez a saga mintákról és azok összetevőiről, valamint az AWS-szolgáltatásokban való felhasználásáról szólt.
Következtetés
A Saga minták hatékony megközelítést biztosítanak a mikroszolgáltatási architektúrákon belüli elosztott tranzakciók kezelésére. Az AWS Step Functions, a Lambda, a DynamoDB, az SNS és az SQS csak néhány AWS szolgáltatás, amely támogatja ezt a mintát. Ez a cikk átfogóan ismerteti a saga mintáját és működését.