V prejšnjem razdelku smo govorili o dveh najnižjih konceptih Service Fabrica, enem je tip vozlišča in vozlišče na strojni ravni. Druga je Aplikacija.
Tip vozlišča je zbirka vozlišč, ki so konceptualne abstrakcije strojev, ki se nameščajo. Za Service Fabric je vozlišče lahko fizični stroj, virtualni stroj ali celo trenutno najbolj priljubljen vsebnik.
Na vrsti vozlišča teče aplikacija. Gre za abstraktno razumevanje na ravni sistemske programske opreme. V aplikaciji je več mikro storitev. Tudi vse osnovne storitve Service Fabric, kot sta FailoverManager Service in Naming Service, so mikro storitve.
Vse porazdeljene funkcije Service Fabric ustrezajo namestitvam mikro storitev. Dinamično lahko prilagajamo, koliko instanc mora mikro storitev delovati na koliko vozliščih, da razporedimo pritisk obremenitve ali izvedemo varnostne kopije po nesrečah. Vsaka instanca posluša drugačen port, plast za uravnoteženje obremenitve pa razporeja zahteve različnim instancam.
Dejanski scenarij
Državna storitev je ena izmed mikro storitev.
Preden začnemo uvajati državno službo, si oglejmo naslednje pogoste poslovne scenarije.
Razmišljate o uvedbi funkcije nakupovalne košarice na svoji spletni strani. Po prijavi bodo uporabniki nekaj izdelkov položili v svojo nakupovalno košarico.
Naslednjič, ko se uporabnik prijavi, bo stran na recepciji poklicala storitev nakupovalnih vozičkov in bo morala ponovno prebrati shranjene podatke o nakupovalni košarici ter jih prikazati.
Če da, kako bi to dosegli?
Če število uporabnikov ni posebej veliko, v bazo podatkov dodamo tabelo nakupovalnih košaric in jo povežemo z uporabniško tabelo. Tabela z vozički bo imela polje z uporabniškim imenom in beležila veliko količino podatkov o uporabniški košarici.
To bo prineslo nadaljnje težave.
Če se število uporabnikov še naprej povečuje, se bo zmogljivost tabel v podatkovnih bazah še naprej slabšala. Podatke iz tabel baze podatkov je treba redno varnostno kopirati v primeru izgube podatkov Če pride do težave z zmogljivostjo podatkovne baze, je treba tabelo razkriti ali celo razdeliti na particije Sam sistem nakupovalnih košaric mora poskrbeti za vse prilagoditve baze podatkov, morda pa je treba tudi obremenitev uravnotežiti Koren tega problema je, da sistem sam po sebi ni zasnovan tako, da bi bil razširljiv. Poleg tega so baze podatkov potencialno ozko grlo in grožnja zmogljivosti.
Državna služba
Poglejmo si tako povsem novo arhitekturo.
Od začetka ima sistem nakupovalnih košaric 36 podstoritev, ki obravnavajo vse zahteve (36, ker so začetnice uporabniškega ID-ja 0-9 a-z, skupaj 36).
Uporabniška zahteva se obdela glede na začetno zgoščeno vrednost uporabniškega ID-ja določenemu podservisu.
Podstoritev shranjuje podatke iz nakupovalne košarice znotraj lastne baze podatkov in jih hrani na svoji lastni shrambni napravi.
Vsaka podstoritev ima tudi 3 varnostne kopije, ki nenehno sinhronizirajo shranjene podatke, te varnostne kopije pa se vedno izvajajo na različnih vozliščih.
Hkrati je le ena varnostna kopija odgovorna za obdelavo zahtevkov kot stanje aktivacije, in ko pride do težav pri aktivaciji varnostne kopije, po algoritmu razporejanja aktivirata druga dva varnostna kopiranja.
Podsistem za obnovo po nesrečah ustvari novo varnostno kopijo, da zagotovi, da ima podstoritev vedno 3 zdrave varnostne kopije.
Stateful Service je ena takih rešitev.
Nazaj k zgornjemu scenariju, sistem nakupovalnih vozičkov je storitev s stanjem.
36 podsistemov predstavlja 36 instanc te Stateful storitve, ki jo imenujemo particije.
Varnostna kopija pod vsakim podsistemom je Replica, v particiji pa so 3 replike.
Trenutno aktivna varnostna kopija je Active Replica, dve neaktivni rezervni varnostni kopiji pa sta Secondary Replica.
Vsaka replika istega Partiiona mora delovati na drugem vozlišču.
Stateful Service koda uporablja <T>vmesnike, kot so IReliableCollection, IReliableDictionary< T1 in T2 >za shranjevanje podatkov in interno sinhronizacijo.
Poleg tega lahko Stateful Service uvede naslednje funkcije:
Vse zgornje številke je mogoče ponastaviti in imeti lahko na stotine particij v kartušnem sistemu, ki naložijo več obremenitev. Lahko imate celo 5 ali več replik na particijo, da zagotovite večjo robustnost. Zunanji sistemi ne marajo, koliko particij ima Stateful Service, ti se kličejo po particijskem ključu. Ključ particije in ustrezna particija se rešita z osnovno mikro storitvijo Service Fabric. Na primer, v vašem podjetju imate morda nekaj milijonov uporabnikov, a nastavite le 5 particij. Ko pokličete nakupovalno košarico kot Stateful Service, zunanji sistem mora le obvestiti uporabniški ID (ključ particije) in shranjene podatke. Ta zahteva se samodejno preslika na eno od petih particij glede na uporabniški ID in hash algoritem. Podatkovne operacije v Stateful Services podpirajo transakcije. Tako lahko razveljaviš odpoved
Upam, da vam bo zgornji uvod pomagal bolje razumeti državno službo.
V naslednjih poglavjih bomo obravnavali primere kod za državno storitev. |