Školení
Modul
Zjistěte, co je architektura Orleans, jaké výhody může poskytnout a jak ji integrovat s vašimi aplikacemi.
Tento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Mezi hlavní výhody Orleans patří:
Orleans Programovací model zvyšuje produktivitu odborníků i neodborných programátorů tím, že poskytuje následující klíčové abstrakce, záruky a systémové služby.
Zrna jsou třídy .NET, které implementují deklarovaná rozhraní .NET grain s asynchronními metodami. Zrna se programátorovi jeví jako vzdálené objekty, jejichž metody lze přímo vyvolat. To poskytuje programátorovi známé paradigma OOP tím, že transformuje volání metod na zprávy, směruje je do správných koncových bodů, vyvolá metody cílového zrnka a řeší selhání a rohové případy transparentně.
Modul runtime zaručuje, že se agregační interval nikdy nespustí na více než jednom vlákně najednou. V kombinaci s izolací od jiných zrn se programátor nikdy nestýká souběžnosti na úrovni zrn a nikdy nepotřebuje používat zámky nebo jiné synchronizační mechanismy pro řízení přístupu ke sdíleným datům. Tato funkce sama o sobě umožňuje vývoj distribuovaných aplikací pro neodborných programátorů.
Modul runtime aktivuje agregační interval pouze v případě, že je k dispozici zpráva, která se má zpracovat. Tím se čistě odděluje pojem vytvoření odkazu na zrnko, které je viditelné a řízené kódem aplikace, a fyzickou aktivaci zrnka v paměti, která je pro aplikaci transparentní. To se podobá virtuální paměti v tom, že se rozhodne, kdy "page out" (deaktivovat) nebo "page in" (aktivovat) agregační interval; Aplikace má nepřerušený přístup k úplnému "paměťovému prostoru" logicky vytvořených zrn, ať už jsou v fyzické paměti v jakémkoli konkrétním okamžiku.
Transparentní aktivace umožňuje dynamické a adaptivní vyrovnávání zatížení prostřednictvím umístění a migrace zrn ve fondu hardwarových prostředků. Tato funkce je významným vylepšením tradičního modelu objektu actor, ve kterém je životnost objektu actor spravovaná aplikací.
Referenční informace o zrnitosti (objekt proxy), který programátor používá k vyvolání metod zrnka nebo předání jiným komponentám, obsahuje pouze logickou identitu zrnka. Překlad logické identity agregace do fyzického umístění a odpovídající směrování zpráv se provádí transparentně modulem Orleans runtime.
Kód aplikace komunikuje s zrny a přitom zůstává nepotřebný s jejich fyzickým umístěním, což se může v průběhu času měnit kvůli selháním nebo správě prostředků nebo kvůli deaktivaci agregace v době, kdy je volána.
Orleans umožňuje deklarativní mapování stavu v paměti agregace na trvalé úložiště. Synchronizuje aktualizace, transparentně zaručuje, že volající obdrží výsledky až po úspěšné aktualizaci trvalého stavu. Rozšíření nebo přizpůsobení sady stávajících dostupných poskytovatelů trvalého úložiště je jednoduché.
Modul runtime automaticky rozšíří neošetřené chyby do řetězce volání sémantikou asynchronního a distribuovaného try/catchu. V důsledku toho se chyby neztratí v rámci aplikace. To umožňuje programátoru umístit logiku zpracování chyb na příslušných místech, aniž by zdlouhavá práce ručního šíření chyb na jednotlivých úrovních.
Programovací Orleans model je navržený tak, aby programátora provedl cestu pravděpodobného úspěchu při škálování aplikace nebo služby několika řády. To se provádí začleněním osvědčených postupů a vzorů a zajištěním efektivní implementace funkčnosti systému nižší úrovně.
Tady jsou některé klíčové faktory, které umožňují škálovatelnost a výkon:
Díky použití zrn jako přímo adresovatelných entit programátor implicitně rozdělí celkový stav své aplikace. Orleans I když programovací model předepisuje, jak velké nebo malé zrno by mělo být, dává ve většině případů smysl mít relativně velký počet zrn – milionů nebo více – s každou entitou, která představuje přirozenou entitu aplikace, jako je uživatelský účet nebo nákupní objednávka.
Díky tomu, že zrnka jsou individuálně adresovatelná a jejich fyzické umístění abstrahované modulem runtime, Orleans má obrovskou flexibilitu při vyrovnávání zatížení a práci s horkými místy transparentně a obecně bez představ od vývojáře aplikací.
Zrna nepředpokládá lokalitu jiných zrn, protože s nimi pracují. Z důvodu transparentnosti tohoto umístění může modul runtime dynamicky spravovat a upravovat přidělování dostupných hardwarových prostředků. Modul runtime to provede podrobným rozhodováním o umístění a migraci zrn v výpočetním clusteru v reakci na vzorce zatížení a komunikace bez selhání příchozích požadavků. Vytvořením několika replik konkrétního agregace může modul runtime zvýšit propustnost agregace, aniž by došlo ke změnám kódu aplikace.
Zrna v Orleans logických koncových bodech a mezi nimi je multiplexované napříč pevnou sadou fyzických připojení typu all-to-all (sokety TCP). To umožňuje modulu runtime hostovat miliony adresovatelných entit s nízkými režijními náklady na operační systém na jednotlivé agregace. Aktivace a deaktivace agregačního intervalu navíc neúčtují náklady na registraci nebo zrušení registrace fyzického koncového bodu, jako je port TCP nebo adresa URL PROTOKOLU HTTP nebo dokonce uzavření připojení TCP.
Modul runtime plánuje provádění velkého počtu zrn s jedním vláknem pomocí fondu vláken .NET, který je vysoce optimalizovaný pro výkon. S odstupňovaným kódem napsaným v neblokovacím stylu založeném na pokračování (požadavek programovacího Orleans modelu) běží kód aplikace velmi efektivním "kooperativním" vícevláknovým způsobem bez kolize. To umožňuje systému dosáhnout vysoké propustnosti a spouštět velmi vysoké využití procesoru (až 90 %+) s velkou stabilitou.
Skutečnost, že růst počtu zrn v systému a zvýšení zatížení neznamená další vlákna nebo jiné primitiv operačního systému pomáhá škálovatelnost jednotlivých uzlů a celého systému.
Programovací Orleans model vytváří asynchronní povahu distribuované aplikace explicitně a vede programátory k zápisu neblokujícího asynchronního kódu. V kombinaci s asynchronním zasíláním zpráv a efektivním plánováním to umožňuje velký stupeň distribuovaného paralelismu a celkové propustnosti bez explicitního použití vícevláknového zpracování.
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Školení
Modul
Zjistěte, co je architektura Orleans, jaké výhody může poskytnout a jak ji integrovat s vašimi aplikacemi.
Dokumentace
Rychlý start: Sestavení první Orleans aplikace pomocí ASP.NET Core - .NET
Naučte se vytvářet škálovatelnou distribuovanou aplikaci ASP.NET Core.Orleans
Dokumentace k Microsoft Orleans
Ukázky, kurzy a vzdělávání pro .NET Orleans Platforma nativních cloudových a distribuovaných systémů Od Microsoftu
Nasazení a škálování aplikace v Orleans Azure - .NET
Hostování a škálování Orleans aplikace v Azure Container Apps pomocí služby Azure Container Registry a Azure Table Storage nebo Azure Cosmos DB for NoSQL