Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 25783|Odpověď: 0

[Zdroj] Service Fabric – koncept stavové služby

[Kopírovat odkaz]
Zveřejněno 15.03.2018 10:03:44 | | | |

V předchozí části jsme mluvili o dvou nejnižších konceptech Service Fabric, jedním je typ uzlu a uzel na hardwarové úrovni. Druhým je aplikace.



Typ uzlu je soubor uzlů, což jsou konceptuální abstrakce nasazovaných strojů. Pro Service Fabric může být uzelem fyzický stroj, virtuální stroj nebo dokonce nejoblíbenější kontejner v současnosti.



Na typu uzlu běží aplikace. Jedná se o abstraktní chápání na úrovni systémového softwaru. V aplikaci je více mikro služeb. Dokonce i všechny základní služby Service Fabric, jako jsou FailoverManager Service a Naming Service, jsou mikro služby.



Všechny distribuované funkce Service Fabric odpovídají nasazením mikro služeb. Můžeme dynamicky upravovat, kolik instancí mikro služba potřebuje spustit na kolik uzlech pro rozložení tlaku zátěže nebo provádění záloh po havárii. Každá instance poslouchá jiný port a vrstva vyvažování zátěže distribuuje požadavky na různé instance.



Skutečný scénář

Státní služba je jednou z mikro služeb.

Než začneme představovat státní službu, podívejme se na následující běžné obchodní scénáře.



Přemýšlíte o zavedení funkce nákupního košíku na svém webu. Po přihlášení uživatelé vloží některé položky do svého nákupního košíku.

Při dalším přihlášení uživatel zavolá na recepci službu nákupních košíků a bude potřeba znovu přečíst uložená data nákupního košíku z této služby a zobrazit je.

Pokud ano, jak byste toho dosáhli?

Pokud počet uživatelů není příliš velký, přidáme do databáze tabulku nákupního košíku a přiřadíme ji k uživatelské tabulce. Tabulka cart bude mít pole User ID a zaznamenává velké množství dat z cart.





To pak přinese další problémy.

Pokud počet uživatelů bude nadále růst, výkon databázových tabulek bude nadále klesat.
Data z databázových tabulek je třeba pravidelně zálohovat pro případ ztráty dat
Pokud je problém s výkonem databáze, je třeba tabulku vyvrátit nebo dokonce rozdělit na partition
Samotný systém nákupních košíků musí zvládat jakékoli úpravy databáze, a i ten může být potřeba být vyvážený
Kořenem tohoto problému je, že samotný systém není navržen tak, aby byl škálovatelný. Kromě toho jsou databáze potenciální úzkým hrdlem a hrozbou pro výkon.



Státní služba

Pojďme si představit zcela novou architekturu.

Od začátku má systém nákupních košíků 36 podslužeb, které zpracovávají všechny požadavky (36, protože iniciály uživatelského ID jsou 0-9 a-z, celkem 36).

Uživatelův požadavek je zpracováván podle počátečního hashe uživatelského ID ke konkrétní podslužbě.

Podslužba ukládá data z nákupního košíku interně prostřednictvím lehké databáze a uchovává je na svém vlastním úložném zařízení.

Každá podslužba má také 3 zálohy, které neustále synchronizují uložená data, a tyto zálohy běží vždy na různých uzlech.

Současně je pouze jedna záloha odpovědná za zpracování požadavků jako aktivačního stavu, a když nastane problém s aktivací zálohy, další dvě zálohy aktivují jednu podle plánovacího algoritmu.

Subsystém obnovy po havárii vytváří novou zálohu, aby zajistil, že podslužba má vždy 3 zdravé zálohy.



Stavové doručení je jedním z takových řešení.

Zpět k výše uvedenému scénáři, systém nákupních košíků je stavová služba.

36 podsystémů tvoří 36 instancí této stavové služby, kterou nazýváme Partitions.

Záloha pod každým podsystémem je Replica a v jedné partition jsou 3 repliky.

Aktuálně aktivní záloha je Active Replica a dvě neaktivní záložní zálohy jsou Secondary Replica.

Každá replika stejného Partiionu musí běžet na jiném uzlu.

Kód stavové služby využívá <T>rozhraní jako IReliableCollection, IReliableDictionary< T1 a T2 >k ukládání dat a interní synchronizaci.



Kromě toho může stavová služba implementovat následující funkce:

Všechny výše uvedené hodnoty lze resetovat a můžete mít stovky oddílů v systému cart, které nakládají větší zatížení. Můžete mít dokonce 5 nebo více replik na oddíl, abyste zajistili větší robustnost.
Externí systémy nezajímají, kolik oddílů má stavová služba, jsou volány podle oddílového klíče. Klíč oddílu a odpovídající oddíl jsou vyřešeny podkladovou mikro službou Service Fabric. Například ve vašem podnikání můžete mít několik milionů uživatelů, ale nastavit jen 5 oddílů. Při volání stavové služby nákupního košíku musí externí systém pouze informovat uživatelské ID (klíč oddílu) a uložená data. Tento požadavek je automaticky mapován na jednu z pěti oddílů na základě uživatelského ID a hashovacího algoritmu.
Datové operace ve stavových službách podporují transakce. Takže můžete vrátit zpět po selhání


Doufám, že výše uvedený úvod vám pomůže lépe pochopit státní službu.

Příklady kódů pro státní službu pokryjeme v následujících sekcích.




Předchozí:Doufám, že si o tom můžete mezi sebou probrat
Další:Čtyřicet sedm způsobů, jak optimalizovat program v C#
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com