Fis-26 ta’ Frar, għamilna laqgħa ta’ Apache Ignite GreenSource, fejn tkellmu kontributuri għall-proġett open source . Avveniment importanti fil-ħajja ta 'din il-komunità kien ir-ristrutturar tal-komponent , li jippermettilek li tuża mikroservizzi tad-dwana direttament fi cluster Ignite. Huwa tkellem dwar dan il-proċess diffiċli fil-laqgħa , inġinier tas-softwer u kontributur ta' Apache Ignite għal aktar minn sentejn.

Nibdew b'dak li huwa Apache Ignite b'mod ġenerali. Din hija database li hija ħażna ta 'Key/Valur distribwita b'appoġġ għal SQL, transazzjoni u caching. Barra minn hekk, Ignite jippermettilek li tuża servizzi tad-dwana direttament fi cluster Ignite. L-iżviluppatur għandu aċċess għall-għodod kollha li jipprovdi Ignite - strutturi tad-dejta mqassma, Messaging, Streaming, Compute u Data Grid. Pereżempju, meta tuża Data Grid, il-problema tal-amministrazzjoni ta' infrastruttura separata għall-ħażna tad-data u, bħala konsegwenza, l-ispejjeż ġenerali li jirriżultaw jisparixxu.

Bl-użu tal-API tal-Grid tas-Servizz, tista' tuża servizz billi sempliċement tispeċifika l-iskema tal-iskjerament u, għaldaqstant, is-servizz innifsu fil-konfigurazzjoni.
Tipikament, skema ta' skjerament hija indikazzjoni tan-numru ta' istanzi li għandhom jiġu skjerati fuq nodi ta' cluster. Hemm żewġ skemi ta' skjerament tipiċi. L-ewwel huwa Cluster Singleton: fi kwalunkwe ħin partikolari, istanza waħda ta 'servizz għall-utent hija garantita li tkun disponibbli fil-cluster. It-tieni huwa Node Singleton: istanza waħda tas-servizz hija skjerata fuq kull node tal-cluster.

L-utent jista 'wkoll jispeċifika n-numru ta' każijiet ta 'servizz fil-cluster kollu u jiddefinixxi predicat għall-filtrazzjoni ta' nodi xierqa. F'dan ix-xenarju, Service Grid innifsu se jikkalkula l-aħjar distribuzzjoni għall-iskjerament tas-servizzi.
Barra minn hekk, hemm karatteristika bħal Affinity Service. L-affinità hija funzjoni li tiddefinixxi r-relazzjoni taċ-ċwievet għall-ħitan u r-relazzjoni tal-partijiet għan-nodi fit-topoloġija. Bl-użu taċ-ċavetta, tista 'tiddetermina n-nodu primarju li fuqu hija maħżuna d-dejta. B'dan il-mod tista 'tassoċja s-servizz tiegħek stess ma' cache tal-funzjoni taċ-ċavetta u ta 'affinità. Jekk tinbidel il-funzjoni tal-affinità, isseħħ riallokazzjoni awtomatika. B'dan il-mod, is-servizz dejjem ikun jinsab qrib id-dejta li jeħtieġ li jimmanipula, u, għaldaqstant, inaqqas l-ispiża ġenerali tal-aċċess għall-informazzjoni. Din l-iskema tista 'tissejjaħ tip ta' kompjuters kollokati.
Issa li sirna nafu x'inhi s-sbuħija ta 'Service Grid, ejja nitkellmu dwar l-istorja tal-iżvilupp tagħha.
Dak li ġara qabel
L-implimentazzjoni preċedenti ta' Service Grid kienet ibbażata fuq il-cache tas-sistema transazzjonali replikata ta' Ignite. Il-kelma "cache" f'Ignite tirreferi għall-ħażna. Jiġifieri, din mhix xi ħaġa temporanja, kif tista 'taħseb. Minkejja l-fatt li l-cache hija replikata u kull node fih is-sett tad-dejta kollu, ġewwa l-cache għandu rappreżentazzjoni maqsuma. Dan huwa dovut għall-ottimizzazzjoni tal-ħażna.

X'ġara meta l-utent ried juża s-servizz?
- In-nodi kollha fil-cluster abbonaw biex jaġġornaw id-dejta fil-ħażna bl-użu tal-mekkaniżmu ta' Mistoqsija Kontinwu inkorporat.
- In-nodu tal-bidu, taħt transazzjoni kommessa bil-qari, għamel rekord fid-database li kien fih il-konfigurazzjoni tas-servizz, inkluża l-istanza serjali.
- Meta nnotifikat bi dħul ġdid, il-koordinatur ikkalkula d-distribuzzjoni abbażi tal-konfigurazzjoni. L-oġġett li jirriżulta nkiteb lura fid-database.
- Jekk nodu kien parti mid-distribuzzjoni, il-koordinatur kellu jużah.
Dak li ma jaqbilniex
F'xi punt wasalna għall-konklużjoni: dan mhux il-mod kif taħdem mas-servizzi. Kien hemm diversi raġunijiet.
Jekk seħħ xi żball waqt l-iskjerament, allura jista 'jinstab biss mir-zkuk tan-node fejn ġara kollox. Kien hemm biss skjerament asinkroniku, għalhekk wara li rritorna l-kontroll lill-utent mill-metodu ta 'skjerament, kien meħtieġ xi żmien addizzjonali biex jinbeda s-servizz - u matul dan iż-żmien l-utent ma seta' jikkontrolla xejn. Sabiex tiżviluppa aktar is-Service Grid, toħloq karatteristiċi ġodda, tattira utenti ġodda u tagħmel il-ħajja ta 'kulħadd aktar faċli, xi ħaġa trid tinbidel.
Meta nfasslu l-Grid tas-Servizz il-ġdid, l-ewwel nett ridna nipprovdu garanzija ta 'skjerament sinkroniku: hekk kif l-utent irritorna l-kontroll mill-API, seta' juża s-servizzi immedjatament. Ridt ukoll nagħti lill-inizjatur l-abbiltà li jimmaniġġja l-iżbalji ta' skjerament.
Barra minn hekk, ridt nissimplifika l-implimentazzjoni, jiġifieri, titbiegħed mit-tranżazzjonijiet u l-ibbilanċjar mill-ġdid. Minkejja l-fatt li l-cache hija replikata u m'hemm l-ebda bilanċ, inqalgħu problemi waqt skjerament kbir b'ħafna nodi. Meta t-topoloġija tinbidel, in-nodi jeħtieġ li jiskambjaw informazzjoni, u bi skjerament kbir, din id-dejta tista 'tiżen ħafna.
Meta t-topoloġija kienet instabbli, il-koordinatur kellu bżonn jikkalkula mill-ġdid id-distribuzzjoni tas-servizzi. U b'mod ġenerali, meta jkollok taħdem ma 'tranżazzjonijiet fuq topoloġija instabbli, dan jista' jwassal għal żbalji diffiċli biex jiġu mbassra.
Problemi
X'inhuma l-bidliet globali mingħajr problemi ta' akkumpanjament? L-ewwel waħda minn dawn kienet bidla fit-topoloġija. Trid tifhem li fi kwalunkwe mument, anke fil-mument tal-iskjerament tas-servizz, node jista’ jidħol jew joħroġ mill-cluster. Barra minn hekk, jekk fil-ħin tal-iskjerament in-nodu jingħaqad mal-cluster, ikun meħtieġ li l-informazzjoni kollha dwar is-servizzi tiġi trasferita b'mod konsistenti lin-nodu l-ġdid. U qed nitkellmu mhux biss dwar dak li diġà ġie skjerat, iżda wkoll dwar skjeramenti attwali u futuri.
Din hija biss waħda mill-problemi li jistgħu jinġabru f'lista separata:
- Kif tuża servizzi konfigurati b'mod statiku fl-istartjar tan-node?
- Tħalli node mill-cluster - x'għandek tagħmel jekk in-nodu jospita servizzi?
- X'għandek tagħmel jekk il-koordinatur ikun inbidel?
- X'għandek tagħmel jekk il-klijent jerġa 'jikkonnettja mal-cluster?
- It-talbiet ta' attivazzjoni/diżattivazzjoni jeħtieġ li jiġu pproċessati u kif?
- X'jiġri jekk talbu għall-qerda tal-cache, u għandna servizzi ta 'affinità marbuta magħha?
U dan mhux kollox.
deċiżjoni
Bħala mira, għażilna l-approċċ Immexxi mill-Avvenimenti bl-implimentazzjoni tal-komunikazzjoni tal-proċess bl-użu ta 'messaġġi. Ignite diġà timplimenta żewġ komponenti li jippermettu li n-nodi jgħaddu messaġġi bejniethom - komunikazzjoni-spi u skoperta-spi.

Communication-spi jippermetti li n-nodi jikkomunikaw direttament u jgħaddu messaġġi. Huwa adattat tajjeb biex jintbagħtu ammonti kbar ta 'dejta. Discovery-spi jippermettilek li tibgħat messaġġ lin-nodi kollha fil-cluster. Fl-implimentazzjoni standard, dan isir bl-użu ta 'topoloġija ċirku. Hemm ukoll integrazzjoni ma 'Zookeeper, f'dan il-każ tintuża topoloġija stilla. Punt ieħor importanti ta 'min jinnota huwa li l-iskoperta-spi jipprovdi garanziji li l-messaġġ definittivament se jitwassal fl-ordni korretta lin-nodi kollha.
Ejja nħarsu lejn il-protokoll tal-iskjerament. It-talbiet kollha tal-utenti għall-iskjerament u l-iskjerament jintbagħtu permezz ta' discovery-spi. Dan jagħti dan li ġej garanziji:
- It-talba tiġi riċevuta min-nodi kollha fil-cluster. Dan jippermetti li t-talba tkompli l-ipproċessar meta l-koordinatur jinbidel. Dan ifisser ukoll li f'messaġġ wieħed, kull node se jkollu l-metadata kollha meħtieġa, bħall-konfigurazzjoni tas-servizz u l-istanza serjali tagħha.
- L-ordni strett tat-twassil tal-messaġġi jgħin biex isolvi kunflitti ta' konfigurazzjoni u talbiet li jikkompetu.
- Peress li d-dħul tan-nodu fit-topoloġija huwa wkoll ipproċessat permezz ta 'skoperta-spi, in-nodu l-ġdid se jirċievi d-dejta kollha meħtieġa biex taħdem mas-servizzi.
Meta tasal talba, in-nodi fil-cluster jivvalidawha u joħolqu ħidmiet ta' pproċessar. Dawn il-kompiti jitqiegħdu fil-kju u mbagħad jiġu pproċessati f'ħajt ieħor minn ħaddiem separat. Huwa implimentat b'dan il-mod minħabba li l-iskjerament jista 'jieħu ammont sinifikanti ta' żmien u jdewwem il-fluss ta 'skoperta għalja b'mod intollerabbli.
It-talbiet kollha mill-kju jiġu pproċessati mill-maniġer tal-iskjerament. Għandu ħaddiem speċjali li jiġbed kompitu minn dan il-kju u jinizjalizzah biex jibda l-iskjerament. Wara dan, iseħħu l-azzjonijiet li ġejjin:
- Kull nodu jikkalkula b'mod indipendenti d-distribuzzjoni grazzi għal funzjoni ta 'assenjazzjoni deterministika ġdida.
- In-nodi jiġġeneraw messaġġ bir-riżultati tal-iskjerament u jibagħtu lill-koordinatur.
- Il-koordinatur jaggrega l-messaġġi kollha u jiġġenera r-riżultat tal-proċess kollu ta 'skjerament, li jintbagħat permezz ta' discovery-spi lin-nodi kollha fil-cluster.
- Meta r-riżultat jiġi riċevut, il-proċess ta 'skjerament jintemm, u wara l-kompitu jitneħħa mill-kju.

Disinn ġdid immexxi mill-avvenimenti: org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java
Jekk iseħħ żball waqt l-iskjerament, in-nodu immedjatament jinkludi dan l-iżball f'messaġġ li jibgħat lill-koordinatur. Wara l-aggregazzjoni tal-messaġġi, il-koordinatur ikollu informazzjoni dwar l-iżbalji kollha waqt l-iskjerament u jibgħat dan il-messaġġ permezz ta' discovery-spi. Informazzjoni dwar l-iżball tkun disponibbli fuq kwalunkwe node fil-cluster.
L-avvenimenti importanti kollha fis-Service Grid huma pproċessati bl-użu ta' dan l-algoritmu operattiv. Pereżempju, it-tibdil tat-topoloġija huwa wkoll messaġġ permezz ta 'skoperta-spi. U b'mod ġenerali, meta mqabbel ma 'dak li kien qabel, il-protokoll irriżulta li kien pjuttost ħafif u affidabbli. Biżżejjed biex tittratta kwalunkwe sitwazzjoni waqt l-iskjerament.
X'se jiġri wara
Issa dwar il-pjanijiet. Kwalunkwe bidla kbira għall-proġett Ignite titlesta bħala inizjattiva ta 'titjib Ignite, imsejħa IEP. Id-disinn mill-ġdid tal-Grid tas-Servizz għandu wkoll IEP - bit-titolu mocking “Oil change in the Service Grid”. Imma fil-fatt, aħna ma biddilniex iż-żejt tal-magna, iżda l-magna kollha.
Qsamna l-kompiti fl-IEP f'2 fażijiet. L-ewwel hija fażi ewlenija, li tikkonsisti f'ħidma mill-ġdid tal-protokoll tal-iskjerament. Diġà hija inkluża fil-kaptan, tista 'tipprova l-Grid tas-Servizz il-ġdid, li se tidher fil-verżjoni 2.8. It-tieni fażi tinkludi ħafna kompiti oħra:
- Iskjerament mill-ġdid sħun
- Verżjoni tas-servizz
- Żieda fit-tolleranza tal-ħsarat
- Klijent irqiq
- Għodod għall-monitoraġġ u l-kalkolu ta 'metriċi varji
Fl-aħħarnett, nistgħu nagħtuk parir dwar Service Grid għall-bini ta’ sistemi li jifilħu għall-ħsarat u ta’ disponibbiltà għolja. Nistednuk ukoll iżżurna fuq и taqsam l-esperjenza tiegħek. L-esperjenza tiegħek hija tassew importanti għall-komunità se tgħinek tifhem fejn timxi wara, kif tiżviluppa l-komponent fil-futur.
Sors: www.habr.com
