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


Microsoft Orleans

Orleans:

  • Platformfüggetlen keretrendszer robusztus, skálázható elosztott alkalmazások létrehozásához. Az elosztott alkalmazások olyan alkalmazások, amelyek több folyamatot is felölelnek, gyakran a hardverhatárokon túl, társközi kommunikációval.
  • Egyetlen helyszíni kiszolgálóról több ezer elosztott, magas rendelkezésre állású alkalmazásra skálázható a felhőben.
  • Kiterjeszti az ismerős fogalmakat és a C#-kifejezéseket a többkiszolgálós környezetekre.
  • Rugalmas skálázásra tervezték. Amikor egy gazdagép csatlakozik egy fürthöz, új aktiválásokat fogadhat. Amikor egy gazdagép elhagyja a fürtöt, a rendszer szükség szerint újraaktiválja az adott gazdagép korábbi aktiválásait a többi gazdagépen. A gazdagépek leskálázás vagy géphiba miatt elhagyhatják a fürtöt. A Orleans fürtök leskálázhatók egyetlen gazdagépre. Ugyanazok a tulajdonságok, amelyek lehetővé teszik a rugalmas méretezhetőséget, lehetővé teszik a hibatűrést. A fürt automatikusan észleli és gyorsan helyreállítja a hibákat.
  • Leegyszerűsíti az elosztott alkalmazásfejlesztés összetettségét azáltal, hogy közös mintákat és API-kat biztosít.
  • Lehetővé teszi az egykiszolgálós alkalmazásfejlesztést ismerő fejlesztők számára, hogy rugalmas, méretezhető natív felhőszolgáltatások és elosztott alkalmazások létrehozására váltanak.
  • Néha "Elosztott .NET"-nek is nevezik.
  • A natív felhőbeli alkalmazások létrehozásakor a választás keretrendszere.
  • Bárhol fut, ahol a .NET támogatott. Ez magában foglalja a Linuxon, Windowson és macOS-en történő üzemeltetést is.
  • Az alkalmazások üzembe helyezhetők a Kubernetesben, a virtuális gépeken és a PaaS-szolgáltatásokban, például a Azure-alkalmazás Szolgáltatásban és az Azure Container Appsben.

Az "Aktormodell"

Orleans az "aktormodellen" alapul. Az aktormodell az 1970-es évek elejéről származik, és ma már Orleansa . Az aktormodell egy olyan programozási modell, amelyben minden szereplő egy egyszerű, egyidejű, nem módosítható objektum, amely egy állapotot és a megfelelő viselkedést foglal magában. A szereplők kizárólag aszinkron üzenetek használatával kommunikálnak egymással. Orleansnevezetesen a virtuális színész absztrakciót találta fel, amelyben a szereplők folyamatosan léteznek.

Feljegyzés

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 egy új megközelítés az elosztott alkalmazások új generációjának létrehozásához 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 korlátozná a fejlesztőt.

További információ Orleans: Virtual Actors via Microsoft Research. A virtuális szereplők szemcseként jelenik meg Orleans .

Mik azok a Grains?

A gabona egyike a számos Orleans primitívnek. Az aktormodell szempontjából a szemcse egy virtuális szereplő. Minden alkalmazás alapvető építőeleme Orleans 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 szemcsék stabil identitásból, viselkedésből és állapotból állnak.

A szemcsés identitások felhasználó által definiált kulcsok, amelyek a szemcséket mindig elérhetővé teszik a meghíváshoz. A szemcséket más szemcsék vagy tetszőleges számú külső ügyfél hívhatja meg. 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 valósítja meg:

A szemcsék olyan változékony vagy állandó állapotú adatokkal rendelkezhetnek, amelyek bármely tárolórendszerben tárolhatók. Í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. A gabona állapota a memóriában marad, miközben a gabona aktív, ami alacsonyabb késést és kevesebb adattároló terhelést eredményez.

A szemcse felügyelt életciklusa Orleans .

A futtatókörnyezet automatikusan igény szerint elvégzi a szemcsék példányosítását Orleans . Az egy ideig nem használt szemcsék automatikusan törlődnek a memóriából az erőforrások felszabadítása érdekében. Ez a stabil identitásuk miatt lehetséges, ami lehetővé teszi a szemcsék meghívását, függetlenül attól, hogy már betöltötték-e őket a memóriába. Ez lehetővé teszi a hiba miatti transzparens helyreállítást is, mivel a hívónak nem kell tudnia, hogy a rendszer mely kiszolgálón példányosít egy szemcsét bármikor. A szemcsék felügyelt életciklussal rendelkeznek, és a futtatókörnyezet felelős a Orleans szemek aktiválásáért/deaktiválásáért, valamint a szemcsék szükség szerinti elhelyezéséért/elhelyezéséért. Ez lehetővé teszi, hogy a fejlesztő úgy írjon kódot, mintha minden szemcsék mindig a memóriában maradnak.

Mik azok a Silók?

A siló egy primitív példa Orleans . Egy siló egy vagy több szemcsét üzemeltet. A Orleans futtatókörnyezet implementálja az alkalmazások programozási modelljét.

A silók egy csoportja általában fürtként fut a méretezhetőség és a hibatűrés érdekében. Fürtként való futtatáskor a silók együttműködnek egymással a munka elosztásához, valamint a hibák észleléséhez és helyreállításához. A futtatókörnyezet lehetővé teszi, hogy a fürtben üzemeltetett szemcsék úgy kommunikáljanak egymással, mintha egyetlen folyamaton belül lennének. A fürtök, a silók és a 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ó pedig egy vagy több szemcsével rendelkezik.

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 tehetek?Orleans

A webalkalmazások és más külső ügyfelek az ügyfélkódtár használatával hívják meg a fürtön lévő szemcséket, amely automatikusan kezeli a hálózati kommunikációt. Az ügyfelek az egyszerűség kedvéért ugyanabban a folyamatban is üzemeltethetők silókkal.

Mit tehetek Orleans?

Orleans A natív felhőbeli alkalmazások készítésének keretrendszere, és minden olyan .NET-alkalmazás létrehozásakor figyelembe kell venni, amelyet végül skálázni kell. Látszólag végtelen módon lehet használni Orleans, de a következő néhány a leggyakoribb módszerek közül; Gaming, Banking, Chat apps, GPS tracking, Stock trading, Shopping carts, Voting apps stb. Orleans a Microsoft használja 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. Orleans számos olyan funkcióval rendelkezik, amelyek megkönnyítik a különböző alkalmazások használatát.

Kitartás

Orleans egy egyszerű adatmegőrzési modellt biztosít, amely biztosítja, hogy az állapot elérhető legyen a kérés feldolgozása előtt, és hogy a konzisztenciája megmaradjon. A szemcsék több elnevezett állandó adatobjektumot is tartalmazhatnak. Előfordulhat például, hogy egy felhasználó profiljához egy "profil", a leltárhoz pedig "inventory" (leltár) nevet ad. Ez az állapot bármely tárolórendszerben tárolható.

Amíg egy gabona fut, az állapot a memóriában marad, így az olvasási kérések a tárterület elérése nélkül is kiszolgálhatók. Amikor a gabona frissíti az állapotát, a hívás IStorage.WriteStateAsync biztosítja, hogy a háttértár frissüljön a tartósság és a konzisztencia érdekében.

További információ: Szemcsés adatmegőrzés.

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

Az emlékeztetők tartós ütemezési mechanizmust jelentenek a szemcsék számára. Ezek segítségével biztosítható, hogy bizonyos műveletek egy későbbi időpontban befejeződjenek, még akkor is, ha a szemcse jelenleg nincs aktiválva. Az időzítők az emlékeztetők nem tartós megfelelői, és nagy gyakoriságú eseményekhez használhatók, amelyek nem igényelnek megbízhatóságot.

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

Rugalmas szemcsés elhelyezés

Amikor egy szemcse aktiválódik Orleans, a futtatókörnyezet dönti el, hogy melyik kiszolgáló (siló) aktiválja a magot. Ezt gabonaelhelyezésnek nevezzük.

Az elhelyezési folyamat Orleans teljes mértékben konfigurálható. A fejlesztők számos beépített elhelyezési szabályzat közül választhatnak, például véletlenszerű, prefer-local és terhelésalapú, vagy egyéni logikát. Ez lehetővé teszi a teljes rugalmasságot annak eldöntésében, hogy hol jönnek létre a szemek. A szemcsék például olyan kiszolgálókon helyezhetők el, amelyek olyan erőforrások közelében vannak, amelyeken működniük kell, vagy más szemcsék, amelyekkel kommunikálnak.

További információ: Szemcsés elhelyezés.

Szemcsés verziószámozás és heterogén fürtök

Az éles rendszerek olyan módon történő frissítése, amely biztonságosan felel meg a változásoknak, kihívást jelenthet, különösen az állapotalapú rendszerek esetében. Ennek figyelembe vételével a beszúrt Orleans felületeket verziószámba lehet adni.

A fürt fenntartja annak leképezését, hogy mely szemcsés implementációk érhetők el a fürtben lévő silókon és az implementációk verzióin. Az információk ezen verzióját a futtatókörnyezet az elhelyezési stratégiákkal együtt használja az elhelyezési döntések meghozatalához a hívások szemcsékre való átirányítása során. Emellett a verziószámozott gabona biztonságos frissítéséhez heterogén fürtöket is lehetővé tesz, ahol a különböző silók különböző szemcsés 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 szemcsék, amelyek nem rendelkeznek társított állapotokkal, és egyszerre több silón is aktiválhatók. Ez lehetővé teszi az állapot nélküli függvények párhuzamosságát.

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

Szemcsés hívásszűrők

A szemcsehívási szűrő olyan logika, amely sok szem számára gyakori. Orleans támogatja a bejövő és kimenő hívások szűrőit. Az engedélyezési, naplózási és telemetriai szűrők, valamint a hibakezelés mind gyakorinak számítanak.

Kérelemkörnyezet

A metaadatok és egyéb információk több kéréssel is átadhatók a kérelemkörnyezet használatával. A kérelemkörnyezet használható elosztott nyomkövetési információk vagy más felhasználó által definiált értékek megtartására.

Elosztott ACID-tranzakciók

A fent ismertetett egyszerű adatmegőrzési modell mellett a szemcsék tranzakciós állapotúak is lehetnek. Több szemcse is részt vehet 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 (nincs központi tranzakciókezelő vagy tranzakciókoordinátor), és szerializálható elkülönítéssel rendelkeznek.

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

Adatfolyamok

adatfolyamok segít a fejlesztőknek, hogy közel valós időben dolgozzák fel az adatelemek sorozatát. Orleansa streamek kezelése; a streameket nem kell létrehozni vagy regisztrálni, mielőtt egy szemcsés vagy ügyfél közzétesz, vagy feliratkozik egy streamre. 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 streamfeldolgozás megbízható: a szemcsék ellenőrzőpontokat (kurzorokat) tárolhatnak, és alaphelyzetbe állíthatják őket egy tárolt ellenőrzőpontra az aktiválás során vagy bármely későbbi időpontban. adatfolyamok támogatja az üzenetek kötegelt 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.

adatfolyamok olyan üzenetsor-szolgáltatásokkal támogatottak, 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ásának felelőssége egyenletesen oszlik el a fürtben.

Bevezetés a(z) Orleans használatába, videó

Ha érdekli a videó bemutatása Orleans, tekintse meg az alábbi videót:

Következő lépések