Megosztás a következőn keresztül:


Microsoft Orleans

Orleans egy platformfüggetlen keretrendszer, amely egyszerűbbé teszi az elosztott alkalmazások készítését. Akár egyetlen kiszolgálóról több ezer felhőalapú alkalmazásra skáláz, Orleans eszközöket biztosít az elosztott rendszerek összetettségének kezeléséhez. A már ismert C# fogalmakat kiterjeszti a többkiszolgálós környezetekre, így a fejlesztők az alkalmazás logikájára összpontosítanak.

Az alábbiakat Orleans kínálja:

  • Rugalmas skálázásra tervezték. Kiszolgálók hozzáadása vagy eltávolítása, és Orleans ennek megfelelően módosul a hibatűrés és a méretezhetőség fenntartása érdekében.
  • Leegyszerűsíti az elosztott alkalmazásfejlesztést egy közös mintákkal és API-kkal, így még az új, elosztott rendszerek számára is elérhetővé válik.
  • Natív felhő, és olyan platformokon fut, ahol a .NET támogatott – Linux, Windows, macOS stb.
  • Támogatja az olyan modern üzembehelyezési lehetőségeket, mint a Kubernetes, az Azure App Service és az Azure Container Apps.

Orleans gyakran "Elosztott .NET"-nek is nevezik, mivel a rugalmas, skálázható natív felhőszolgáltatások létrehozására összpontosít. Most ismerkedjünk meg az aktormodellel.

Az aktormodell

Orleans az aktormodellen alapul. Az 1970-es évek elejétől kezdve az aktormodell mára a Orleans fontos része. Az aktormodellben minden szereplő egy egyszerű, egyidejű, nem módosítható objektum, amely egy állapotot és egy megfelelő viselkedést foglal magában. A szereplők kizárólag aszinkron üzenetek használatával kommunikálnak. Orleans nevezetesen a virtuális színész absztrakciót találta fel, ahol a szereplők folyamatosan léteznek.

Jegyzet

A szereplők tisztán logikai entitások, amelyek mindig léteznek, gyakorlatilag. A szereplők nem hozhatók létre és nem semmisíthetők meg explicit módon, és a virtuális létezését nem befolyásolja az azt végrehajtó kiszolgáló hibája. Mivel a színészek mindig léteznek, mindig címezhetők.

Ez az új megközelítés segít az elosztott alkalmazások új generációjának kiépítésében a felhőkorszakban. A Orleans programozási modell megszelídítja a nagymértékben párhuzamos elosztott alkalmazások összetettségét anélkül , hogy korlátozná a képességeket vagy kényszereket vezet be.

További információ: Orleans: Virtuális aktorok a Microsoft Researchen keresztül. A virtuális szereplő egy Orleans szemcseként van képviselve.

Mik azok a gabonafélék?

A gabona egyike a számos Orleans alapvető elemnek. Az aktormodell szempontjából a gránum egy virtuális aktor. Minden Orleans alkalmazás alapvető építőeleme egy szemcse. A szemcsék felhasználó által definiált identitásból, viselkedésből és állapotból álló entitások. Vegye figyelembe a szemcsék alábbi vizuális ábrázolását:

A szemcse stabil identitásból, viselkedésből és állapotból áll.

A szemcsés identitások felhasználó által definiált kulcsok, így a szemcsék mindig elérhetők a híváshoz. Más grain-ek vagy bármennyi külső ügyfél is meghívhatja a grain-eket. Minden szemcse egy osztály egy példánya, amely az alábbi interfészek közül egy vagy több implementálását hajtja végre:

A szemcsék bármilyen tárolórendszerben tárolhatnak illékony vagy állandó állapotadatokat. Így a szemcsék implicit módon particionálják az alkalmazásállapotokat, lehetővé téve az automatikus méretezhetőséget, és leegyszerűsítik a hibák utáni helyreállítást. Orleans megtartja a gabona állapotát a memóriában, miközben a gabona aktív, ami alacsonyabb késést és kevesebb adattároló terhelést eredményez.

Egy Orleans szemcse felügyelt életciklusa.

A Orleans futtatókörnyezet automatikusan példányosítja a szemcséket igény szerint. A rendszer automatikusan eltávolítja a memóriából egy ideig nem használt szemcséket az erőforrások felszabadítása érdekében. Ez az eltávolítás a stabil identitásuk miatt lehetséges, ami lehetővé teszi a szemcsék meghívását, függetlenül attól, hogy be vannak-e töltve a memóriába, vagy sem. Ez lehetővé teszi a hiba miatti átlátható helyreállítást is, mivel a hívónak nem kell tudnia, hogy melyik kiszolgálón van egy egység bármelyik ponton példányosítva. A szemcsék felügyelt életciklussal rendelkeznek, és a Orleans futtatókörnyezet felelős a szemcsék szükség szerinti aktiválásáért/inaktiválásáért és elhelyezéséért/megkereséséért. Ez lehetővé teszi, hogy a kódot úgy írjuk meg, mintha minden szemcse mindig memóriában lenne.

Mik azok a silók?

A siló egy másik példa a Orleans primitívre. Egy siló egy vagy több gabonát tartalmaz. A Orleans futtatókörnyezet implementálja az alkalmazások programozási modelljét.

A silók egy csoportja általában klaszerként működik a méretezhetőség és a hibatűrés céljából. Fürtként való futtatáskor a silók koordinálják a munka elosztását, valamint a hibák észlelését és helyreállítását. A futtatókörnyezet lehetővé teszi, hogy a klaszterben található szemcsék úgy kommunikáljanak, mintha egyetlen folyamaton belül lennének. A fürtök, silók és szemcsék közötti kapcsolat megjelenítéséhez tekintse meg az alábbi ábrát:

egy fürt egy vagy több silóval rendelkezik, a silónak pedig egy vagy több szemcséje van.

Az előző diagram a fürtök, a silók és a szemcsék közötti kapcsolatot mutatja be. Tetszőleges számú fürt lehet, minden fürt egy vagy több silóval rendelkezik, és mindegyik siló egy vagy több szemcsés.

Az alapvető programozási modell mellett a silók futtatókörnyezeti szolgáltatásokat is biztosítanak, például időzítőket, emlékeztetőket (állandó időzítőket), adatmegőrzést, tranzakciókat, streameket stb. További információ: Mit lehet tenni?Orleans.

A webalkalmazások és más külső ügyfelek az ügyfélkönyvtár használatával hívják meg a fürtben lévő grain-eket, amely automatikusan kezeli a hálózati kommunikációt. Az ügyfelek az egyszerűség kedvéért ugyanabban a folyamatban is együtt működhetnek a silókkal.

Mit lehet tenni?Orleans

Orleans a natív felhőbeli alkalmazások készítésének keretrendszere, és figyelembe kell venni az olyan .NET-alkalmazások létrehozásakor, amelyeknek végül skálázniuk kell. Látszólag végtelen módon lehet használni Orleans, de a következők a leggyakoribbak: Gaming, Banking, Chat apps, GPS tracking, Stock trading, Shopping carts, Voting apps, stb. A Microsoft az Azure-ban, az Xboxban, a Skype-ban, a Haloban, a PlayFab-ban, a Gears of Warban és sok más belső szolgáltatásban is használja Orleans . Orleans számos funkcióval rendelkezik, amelyek megkönnyítik a különböző alkalmazások használatát.

Kitartás

Orleans Egyszerű adatmegőrzési modellt biztosít, amely biztosítja az állapot rendelkezésre állását a kérés feldolgozása és a konzisztencia fenntartása előtt. A szemcsék több elnevezett állandó adatobjektumot is tartalmazhatnak. Az egyiket például "profilnak" nevezik egy felhasználó profiljához, egy másikat pedig a leltárhoz. Ez az állapot bármely tárolórendszerben tárolható.

Amíg egy szál fut, Orleans a memóriában tartja az állapotot az olvasási igények kiszolgálásához anélkül, hogy hozzáférne a tárhelyhez. Amikor a gabona frissíti az állapotát, a hívás IStorage.WriteStateAsync biztosítja a háttértár frissítéseit a tartósság és a konzisztencia érdekében.

További információ: Szemcsés állandóság.

Időzítők és emlékeztetők

Az emlékeztetők tartós ütemezési mechanizmusként szolgálnak a szemcsék esetén. Ezekkel biztosíthatja, hogy a művelet egy későbbi időpontban befejeződjön, még akkor is, ha a gabona jelenleg nincs aktiválva. Az időzítők az emlékeztetők nem tartós megfelelői, és nagy gyakoriságú, megbízhatóságot nem igénylő eseményekhez használhatók.

További információ: időzítők és emlékeztetők.

Rugalmas szemcsés elhelyezés

Amikor egy gabona be van Orleansaktiválva, a futtatókörnyezet dönti el, hogy melyik kiszolgálón (silóban) aktiválja azt. Ezt a folyamatot gabonaelhelyezésnek nevezzük.

Az elhelyezési folyamat Orleans teljes mértékben konfigurálható. Válasszon a beépített elhelyezési szabályzatok közül, például véletlenszerű, helyi preferencia és terhelésalapú, vagy konfiguráljon egyéni logikát. Ez lehetővé teszi a teljes rugalmasságot annak eldöntésében, hogy hol jönnek létre a szemcsék. Például helyezzük a szemcséket olyan kiszolgálóra, amely közel van azokhoz az erőforrásokhoz, amelyekkel működnek, vagy más szemcsékkel, amelyekkel kommunikálnak.

További információért lásd: Szemcse elhelyezése.

Szemcsés verziókezelés és heterogén klaszterek

A gyártási rendszerek biztonságos frissítése a változások figyelembevételével kihívást jelenthet, különösen állapotalapú rendszerek esetén. Ennek figyelembe vételével a szemcsés interfészek verziószámozottak lehetnek a következőben Orleans: .

A klaszter leképezi azt, hogy mely grain implementációk érhetők el mely silókban és azok verziói. A futtatókörnyezet ezeket a verzióinformációkat elhelyezési stratégiákkal használja az elhelyezési döntések meghozatalához a hívások szemcsékre való átirányításakor. A verziószámozott gabona biztonságos frissítése mellett ez heterogén fürtöket is lehetővé tesz, ahol a különböző silók különböző rendelkezésre álló gabona implementációkkal rendelkeznek.

További információ: Grain Versioning.

Állapot nélküli dolgozók

Az állapot nélküli feldolgozók speciálisan megjelölt, társított állapot nélküli szemcsék, amelyek egyszerre több silóban is aktiválhatók. Ez növeli az állapot nélküli függvények párhuzamosságát.

További információ: állapot nélküli feldolgozói szemcsék.

Grain-alapú hívásszűrők

A szemcsehívás-szűrő sok szemcse logikájára jellemző. Orleans támogatja a bejövő és kimenő hívások szűrőit. A gyakori felhasználási módok közé tartozik az engedélyezés, a naplózás és a telemetria, valamint a hibakezelés.

Kérelemkörnyezet

Metaadatok és egyéb információk átadása kérések sorozatával a kérelemkörnyezet használatával. Használja a kérelemkörnyezetet az elosztott nyomkövetési információk vagy bármely más meghatározott érték megtartásához.

Elosztott ACID-tranzakciók

A fent leírt egyszerű adatmegőrzési modell mellett a szemcsék tranzakciós állapotúak is lehetnek. Több szemcsék is részt vehetnek az ACID-tranzakciókban, függetlenül attól, hogy végül hol tárolják az állapotukat. A tranzakciók Orleans elosztottak és decentralizáltak (vagyis nincs központi tranzakciókezelő vagy koordinátor), és szerializálható elkülönítéssel rendelkeznek.

A tranzakciókról további információt Tranzakciókcímű témakörben talál.

Folyamok

A streamek közel valós idejű adatelemeket dolgoznak fel. Orleans a streamek kezelve vannak; a streameket nem szükséges létrehozni vagy regisztrálni, mielőtt egy grain vagy ügyfél közzétesz vagy előfizet. Ez lehetővé teszi a streamelők és a fogyasztók egymástól és az infrastruktúrától való nagyobb elkülönítését.

A folyamfeldolgozás megbízható: a szemcsék ellenőrzőpontokat (kurzorokat) tárolhatnak, és visszaállíthatók egy tárolt ellenőrzőpontra aktiváláskor vagy bármely későbbi időpontban. A streamek támogatják az üzenetek csomagban történő kézbesítését a fogyasztóknak a hatékonyság és a helyreállítási teljesítmény javítása érdekében.

A streamek sorbaállítási szolgáltatásokkal vannak támogatva, mint az Azure Event Hubs, az Amazon Kinesis és mások.

Tetszőleges számú streamet lehet multiplexelni kisebb számú üzenetsorra, és az üzenetsorok feldolgozása egyenletesen oszlik el a klaszterben.

Bevezetés a Orleans videóba

A(z) Orleans bemutatásához nézze meg az alábbi videót.

Következő lépések