Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Jótanács
Ez a tartalom a „Az Azure-hoz készült natív felhőalapú .NET-alkalmazások tervezése” című eBookból egy részlet, amely elérhető a .NET Docs oldalán, vagy ingyenesen letölthető PDF fájlként, amely offline módban is olvasható.
Ebben a fejezetben áttekintettük a mikroszolgáltatás-kommunikáció kihívásait. Azt mondtuk, hogy a fejlesztői csapatoknak érzékenynek kell lenniük arra, hogy a háttérszolgáltatások hogyan kommunikálnak egymással. Ideális esetben minél kevesebb a szolgáltatásközi kommunikáció, annál jobb. Az elkerülés azonban nem mindig lehetséges, mivel a háttérszolgáltatások gyakran támaszkodnak egymásra a műveletek elvégzéséhez.
A szinkron HTTP-kommunikáció és az aszinkron üzenetkezelés implementálásának különböző megközelítéseit ismertettük. Minden esetben a fejlesztőt terheli a kommunikációs kód implementálása. A kommunikációs kód összetett és időigényes. A helytelen döntések jelentős teljesítményproblémákhoz vezethetnek.
A mikroszolgáltatások kommunikációjának modernebb megközelítése egy új és gyorsan fejlődő technológián, a Service Mesh-en alapul. A szolgáltatásháló egy konfigurálható infrastruktúraréteg, amely beépített képességekkel rendelkezik a szolgáltatásközi kommunikáció, a rugalmasság és számos átfogó szempont kezelésére. A felelősséget ezekért a problémákért kiveszi a mikroszolgáltatásokból, és áthelyezi a szolgáltatásháló-rétegbe. A kommunikáció elvont a mikroszolgáltatásoktól.
A szolgáltatásháló kulcsösszetevője a proxy. A natív felhőbeli alkalmazásokban a proxy egy példánya általában az egyes mikroszolgáltatásokhoz van társítva. Bár külön folyamatokban hajtják végre őket, a kettő szorosan össze van kapcsolva, és ugyanazzal az életciklussal rendelkeznek. Ez a minta, amelyet más néven Oldalkocsi mintának nevezünk, a 4-24. ábrán látható.
4–24. ábra. Szolgáltatásháló oldalkocsival
Az előző ábrán látható, hogy az egyes mikroszolgáltatások mellett futó proxy hogyan rögzíti az üzeneteket. Minden proxy konfigurálható a mikroszolgáltatásra vonatkozó forgalmi szabályokkal. Megérti az üzeneteket, és át tudja irányítani őket a szolgáltatásokon és a külvilágon.
A szolgáltatásközi kommunikáció kezelése mellett a Service Mesh támogatja a szolgáltatásfelderítést és a terheléselosztást.
A konfigurálás után a szolgáltatásháló rendkívül működőképes. A háló lekéri a megfelelő példánykészletet egy szolgáltatásfelderítési végpontról. Kérést küld egy adott szolgáltatáspéldánynak, rögzítve az eredmény késését és választípusát. Kiválasztja azt a példányt, amely valószínűleg gyors választ ad vissza különböző tényezők alapján, beleértve a legutóbbi kérések megfigyelt késését is.
A szolgáltatási háló az alkalmazás szintjén kezeli a forgalommal, a kommunikációval és a hálózatkezeléssel kapcsolatos problémákat. Megérti az üzeneteket és a kéréseket. A szolgáltatáshálók általában egy tárolóvezénylővel integrálhatók. A Kubernetes olyan bővíthető architektúrát támogat, amelyben szolgáltatáshálót lehet hozzáadni.
A 6. fejezetben részletesen bemutatjuk a Service Mesh-technológiákat, beleértve az architektúrával és a rendelkezésre álló nyílt forráskódú implementációkkal kapcsolatos vitaanyagot.
Összefoglalás
Ebben a fejezetben a natív felhőbeli kommunikációs mintákat tárgyaltuk. Elsőként azt vizsgáltuk meg, hogyan kommunikálnak az előtérbeli ügyfelek a háttérbeli mikroszolgáltatásokkal. Az út során az API Gateway-platformokról és a valós idejű kommunikációról beszéltünk. Ezután megvizsgáltuk, hogyan kommunikálnak a mikroszolgáltatások más háttérszolgáltatásokkal. Megvizsgáltuk a szinkron HTTP-kommunikációt és az aszinkron üzenetküldést a szolgáltatások között. Bemutattuk a gRPC-t, a felhőalapú natív világ közelgő technológiájának használatát. Végül bevezettünk egy új, gyorsan fejlődő, Service Mesh nevű technológiát, amely egyszerűsíti a mikroszolgáltatás-kommunikációt.
Különös hangsúlyt fektettek a felügyelt Azure-szolgáltatásokra, amelyek segíthetnek a natív felhőbeli rendszerek kommunikációjának megvalósításában:
- Azure Application Gateway
- Azure API Management
- Azure SignalR Szolgáltatás
- Azure Storage-üzenetsorok
- Azure Service Bus
- Azure Event Grid
- Azure Event Hub
A következő lépés az elosztott adatok natív felhőbeli rendszerekben való használata, valamint az azokkal járó előnyök és kihívások.