![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Dhisidda nidaam qaybsan oo la isku halayn karo, heer sare ah oo la heli karo, la miisaami karo waxay u baahan tahay u hoggaansanaanta farsamooyin gaar ah, mabaadi'da, iyo qaababka. Naqshadeynta nidaamyada noocaan ah waxay ku lug leedahay wax ka qabashada caqabado badan. Arrimaha aadka u baahsan ee salka ku haya waxa ka mid ah mushkiladda qoraalka laba-geesoodka ah .
"Dhibaatada laba-qoritaan" waa caqabad ka dhalata nidaamyada la qaybiyey, inta badan marka laga hadlayo ilo xogeedyo badan ama xog-ururin u baahan in la isku dhejiyo. Waxay tilmaamaysaa dhibka ay leedahay in la hubiyo in isbeddelada xogta si joogto ah loogu qoro bakhaarrada xogta kala duwan, sida kaydinta xogta ama kaydinta, iyada oo aan la soo bandhigin arrimaha sida iswaafaqla'aanta xogta, isku dhacyada, ama caqabadaha waxqabadka.
Naqshadaynta adeeg-yaraha iyo xogta nashqada adeeg kasta waxay kuu keenaysaa faa'iidooyin badan, sida hawlgelin madax-bannaan iyo miisaan, guuldarrooyin go'doonsan, iyo kobcinta xawaaraha horumarka. Si kastaba ha ahaatee, hawlgaladu waxay u baahan yihiin isbeddelo ka dhex jira adeegyo yar yar oo badan, taas oo kugu qasbaysa inaad ka fikirto xal la isku halayn karo si wax looga qabto dhibaatadan.
Aynu ka fiirsanno dhacdo kaas oo domainkayagu uu ku lug leeyahay aqbalida codsiyada amaahda, qiimaynta, ka dibna u dirida ogeysiisyada ogeysiiska macaamiisha.
Iyada oo la raacayo mabda'a mas'uuliyadda keli ah, sharciga Conway, iyo habka naqshadaynta domain-ka, ka dib kulamo badan oo dhacdooyin-dabaylo ah, dhammaan domainka waxaa loo kala qaybiyay saddex subdomains oo leh xaalado xaddidan oo xaddidan oo leh xuduudo cad, qaababka domain, iyo luqadda meel kasta.
Kan ugu horreeya waxa loo xilsaaray fuulista iyo ururinta codsiyada amaahda cusub. Nidaamka labaad wuxuu qiimeeyaa codsiyadan wuxuuna sameeyaa go'aamo ku salaysan xogta la bixiyay. Nidaamkan qiimaynta, oo ay ku jiraan KYC/KYB, ka hortagga khiyaanada, iyo hubinta khatarta deynta, waxay noqon kartaa waqti-qaadasho, taasoo u baahan awoodda lagu maareeyo kumanaan codsiyo isku mar ah. Sidaa awgeed, shaqadan waxa loo wakiishay adeeg-yar oo u go'ay oo leh xog-ururin u gaar ah, taasoo u oggolaanaysa miisaan madaxbannaan.
Intaa waxaa dheer, nidaamyadan hoose waxaa maamula laba kooxood oo kala duwan, mid kastaa wuxuu leeyahay wareegyo sii deyntiisa, heshiisyada heerka adeegga (SLA), iyo shuruudaha miisaanka.
Ugu dambeyntii , adeeg ogeysiin gaar ah ayaa jira si loogu diro ogeysiisyada macaamiisha.
Halkan waxaa ah sharraxaad la safeeyey oo ku saabsan kiiska isticmaalka aasaasiga ah ee nidaamka:
Waa hab fudud oo fudud jaleecada hore, laakiin aynu u dhex galno sida adeega codsiga Amaahda u socodsiiyo amarka codsiga amaahda.
Waxaan tixgelin karnaa laba hab oo isdhexgalka adeegga:
First-Local-Commit-Kadib-Daabacaadda: Habkan, adeeggu waxa uu cusboonaysiiyaa xog-ururinta deegaanka (go'aamiya) ka dibna waxa uu daabacaa dhacdo ama fariin adeegyada kale.
Marka hore-Daabacaadda-Kadib-Local-Commit: Taa beddelkeeda, habkani waxa uu ku lug leeyahay daabacaadda dhacdo ama farriin ka hor inta aan isbeddellada lagu samayn kaydka xogta deegaanka.
Labada habba waxay leeyihiin dib-u-dhacooda waxayna qayb ahaan ku fashilmeen-ammaan ku ah isgaarsiinta nidaamyada qaybsan.
Tani waa jaantus taxane ah oo lagu dabaqayo habka ugu horreeya.
Xaaladdan, Adeegga Codsiga Amaahda wuxuu shaqaaleeyaa habka ugu horreeya-Local-Commit-Kadib-Daabacaadda , halkaasoo uu marka hore sameeyo wax kala beddelasho ka dibna uu isku dayo inuu ogeysiis u diro nidaam kale. Si kastaba ha ahaatee, habkani waxa uu u nugul yahay guuldarada haddii, tusaale ahaan, ay jiraan arrimo shabakadeed, Adeegga Qiimaynta aan la heli karin, ama Adeegga Codsiga Amaahda uu la kulmo qaladka xusuusta ka baxsan (OOM) iyo shilalka. Xaaladahan oo kale, fariintu way lumi doontaa, iyada oo ka tagaysa Qiimaynta iyada oo aan la ogeysiin codsiga amaahda cusub, haddii aan tallaabooyin dheeraad ah la fulin.
Iyo midda labaad.
Xaaladda Koowaad-Daabacaadda-Kadib-Local-Go'aaminta , Adeegga Codsiga Amaahda waxa uu wajahayaa khataro badan oo muhiim ah. Waxa laga yaabaa inay ku wargeliso Adeegga Qiimaynta codsi cusub laakiin way ku guul daraysatay inay kaydiso cusboonaysiintaan gudaha gudaha sababtoo ah dhibaatooyinka sida arrimaha kaydka xogta, khaladaadka xusuusta, ama dhiqlaha koodka. Habkani wuxuu u horseedi karaa iswaafaqid weyn oo xogta ah, taas oo keeni karta dhibaatooyin halis ah, taas oo ku xidhan sida Adeegga Dib u Eegista Amaahda u qabto codsiyada soo socda.
Sidaa darteed, waa in aan aqoonsanno xal bixiya hab adag oo loogu daabaco dhacdooyinka macaamiisha dibadda. Laakin, ka hor inta aanan u guda galin xalalka suurtagalka ah, waa in aan marka hore cadeyno noocyada dammaanad qaadka fariinta lagu gaari karo nidaamyada qaybsan.
Waxaa jira afar nooc oo dammaanad ah oo aan ku guuleysan karno.
Wax dammaanad ah ma leh
Ma jirto wax dammaanad qaad ah in fariinta la gaarsiin doono meesha loo socdo. Habka Kow-Local-Commit-Kadib-Daabacaadda ayaa si sax ah arrintan ku saabsan. Macaamiisha waxaa laga yaabaa inay helaan fariimaha hal mar, dhowr jeer, ama waligoodba.
Ugu badnaan hal mar keenid
Ugu badnaan marka la soo gaarsiiyo waxay ka dhigan tahay in fariinta la gaarsiin doono meesha loo socdo ugu badnaan 1 mar. Habka Kow-Local-Local-Commit-Kadib-Daabacaadda ayaa lagu hirgelin karaa habkan iyo sidoo kale siyaasadda isku-dayga ee qiimaha leh.
Ugu yaraan hal mar gaarsiinta\macaamiishu waxay heli doonaan oo farsameynayaan fariin kasta laakiin waxaa laga yaabaa inay helaan fariin isku mid ah in ka badan hal mar.
Sida saxda ah mar gaarsiinta\Sida saxda ah mar gaarsiinta waxay ka dhigan tahay in macaamiishu uu heli doono fariinta si wax ku ool ah hal mar.
Farsamo ahaan, waxaa suurtagal ah in lagu gaaro macaamilka Kafka iyo hirgelinta gaarka ah ee soo saaraha iyo macaamilka.
Inta badan, 'ugu yaraan hal mar' dammaanad qaadku wuxuu wax ka qabtaa arrimo badan iyadoo la hubinayo in fariimaha la dhiibo ugu yaraan hal mar, laakiin macaamiishu waa inay ahaadaan kuwo awood leh. Si kastaba ha ahaatee, marka la eego guuldarrooyinka shabakadda ee aan laga maarmi karin, dhammaan caqligal macmiilku waa inay ahaadaan kuwo awood leh si looga fogaado socodsiinta fariimaha nuqulka ah, iyadoon loo eegin dammaanadda soo-saaraha. Sidaa darteed, shuruudani maaha mid aad u dhib badan ee waxay ka tarjumaysaa xaqiiqda.
Waxaa jira xalal badan oo lagu xallinayo dhibaatadan, kuwaas oo leh faa'iidooyin iyo faa'iido darrooyinkooda.
Sida laga soo xigtay Wikipedia, Ballanqaadka Labada Waji ee (2PC) waa hab-maamuuska macaamil ganacsi oo la qaybiyey oo loo isticmaalo sayniska kombiyuutarka iyo nidaamyada maareynta xogta xogta si loo hubiyo joogtaynta iyo isku halaynta macaamilada la qaybiyey. Waxaa loogu talagalay xaaladaha ay kheyraad badan (tusaale, xog-ururinta) u baahan yihiin inay ka qaybqaataan hal wax kala beddelasho, waxayna hubisaa in dhammaantood ay sameeyaan wax kala iibsiga ama dhammaantood ay iska ridaan, si loo ilaaliyo joogtaynta xogta. Waxay u egtahay sida saxda ah waxaan u baahanahay, laakiin Ballanqaadka Labada Waji wuxuu leeyahay dhowr cilladood:
Xalka ugu muuqda ee qaab-dhismeedka microservices waa in lagu dabaqo qaab (ama xitaa mararka qaarkood qaab-diidmo) - xog-ururin la wadaago. Habkani waa mid dareen leh haddii aad u baahan tahay joogtaynta macaamil ganacsi ee miisaska badan ee kaydka xogta kala duwan, kaliya u isticmaal hal xog oo la wadaago adeegyadan yar yar.
Caqabadaha habkan waxaa ka mid ah soo bandhigida hal dhibic oo guul darro ah, la xakameynayo qiyaasta xogta madax-bannaan, iyo xaddididda awoodda isticmaalka xalalka xogta kala duwan ee ugu habboon shuruudaha gaarka ah iyo isticmaalka kiisaska. Intaa waxaa dheer, wax ka beddelka saldhigyada koodka adeegga-yaraha ayaa lagama maarmaan noqon doona si loo taageero qaabka wax kala beddelashada ee la qaybiyey.
The ' exchangeal outbox ' waa qaab naqshadeed oo loo isticmaalo nidaamyada la qaybiyey si loo hubiyo faafinta fariimaha la isku halayn karo, xitaa marka laga hadlayo hababka fariimaha aan la isku halayn karin. Waxay ku lug leedahay kaydinta dhacdooyinka shaxda 'OutboxEvents' ee loo qoondeeyay isla macaamilka hawlgalka laftiisa. Habkani wuxuu si fiican ula jaan qaadayaa sifooyinka ACID ee xogta macluumaadka. Taas bedelkeeda, xog-ururin badan oo No-SQL ah si buuxda uma taageeraan guryaha ACID, iyagoo dooranaya mabaadi'da CAP theorem iyo falsafada BASE, kuwaas oo mudnaanta siiya helitaanka iyo ugu dambeyntii joogtaynta joogtada ah.
Sanduuqa wax kala iibsiga waxa uu bixiyaa ugu yaraan hal mar dammaanad waxaana lagu hirgelin karaa qaabab badan:
Dabada ganacsiga
Soo saare codbixinta
Habka dabadaynta diiwaanka wax kala iibsiga waxa ay tusinaysaa adeegsiga xalalka xogta gaarka ah sida CDC (Beddel Xog Qabashada). Cilladaha ugu waaweyn ee habkaas waa:
Database xalal gaar ah
Daahitaanku oo kordhay sababtoo ah waxyaabaha gaarka ah ee fulinta CDC
Hab kale ayaa ah Daabacaha Codbixinta , kaas oo sahlaya in sanduuqa dibadda loo raro iyada oo la codeynayo miiska dibadda. Cilladda koowaad ee habkani waa suurtagalnimada korodhka culeyska xogta, taas oo horseedi karta kharashyo badan. Intaa waxaa dheer, dhammaan xogaha No-SQL ma taageeraan weydiinta hufan ee qaybaha dukumeentiyada gaarka ah. Soo saarista dukumeentiyada oo dhan, sidaas darteed, waxay keeni kartaa hoos u dhac ku yimaada waxqabadka.
Halkan waxaa ah jaantus yar oo isku xiga oo sharxaya sida ay u shaqeyso.
Caqabadda aasaasiga ah ee hannaankii Sanduuqa Bixinta ee wax kala iibsiga waa ku tiirsanaanta xogta hantida ACID. Waxay noqon kartaa mid toos ah xogta caadiga ah ee OLTP laakiin waxay keenaysaa caqabado gudaha NoSQL. Si taas wax looga qabto, xalka suurtagalka ah waa in laga faa'iidaysto diiwaanka lifaaqa (tusaale, Kafka) laga bilaabo bilawga habaynta codsiga.
Halkii si toos ah looga baaraandegi lahaa amarka 'gudbi codsiga amaahda', waxaan isla markiiba u dirnaa mowduuca Kafka gudaha ka dibna u soo celi natiijada 'la aqbalay' macmiilka. Si kastaba ha ahaatee, maadaama ay aad ugu badan tahay in amarku weli u baahan yahay in la farsameeyo, isla markiiba ma ogeysiin karno macmiilka natiijada. Si loo maareeyo joogteyntan kama danbaysta ah, waxaanu adeegsan karnaa farsamooyin sida codayn dheer, codbixin macmiil bilaabay, cusboonaysiinta UI ee yididiilo leh, ama isticmaalka WebSockets ama Dhacdooyinka Server-Sent ee ogeysiisyada. Si kastaba ha ahaatee, kani waa mawduuc gaar ah gabi ahaanba, markaa aan ku soo laabano mawduuceeni hore.
Waxaan fariinta u dirnay mawduuc gudaha Kafka ah. Adeegga Codsiga Amaahda ayaa markaa isticmaala fariintan - isla amarkii ay ka heshay macmiilka - oo bilaabay habaynta. Marka hore, waxay fulisaa qaar ka mid ah macquulnimada ganacsiga; Kaliya ka dib marka macquulkan si guul leh loo fuliyo natiijooyinkana la sii wado, waxay daabacdaa farriimaha cusub mawduuca Kafka ee dadweynaha.
Aynu eegno xoogaa kood been abuur ah.
public async Task HandleAsync(SubmitLoanApplicationCommand command, ...) { //First, process business logic var loanApplication = await _loanApplicationService.HandleCommandAsync(command, ...); //Then, send new events to public Kafka topic producer.Send(new LoanApplicationSubmittedEvent(loanApplication.Id)); //Then, commit offset consumer.Commit(); }
Maxaa dhacaya haddii habaynta macquulka ganacsigu fashilmo? Walwal ma leh, mar haddii aan la dhimin weli, farriinta waa la tijaabin doonaa.
Maxaa dhacaya haddii u dirida dhacdooyin cusub Kafka ku guuldareysto? Wax walwal ah ma leh, maadaama caqli-galnimada ganacsigu uu awood u leeyahay, ma abuuri doonto codsi deyn nuqul ah. Taa beddelkeeda, waxay isku dayi doontaa inay dib u dirto fariimaha dadweynaha mawduuca Kafka.
Maxaa dhacaya haddii farriimaha loo diro Kafka, laakiin dembi-dhaafku uu guuldareysto? Walwal ma leh, mar haddii macquulka ganacsigu uu awood badan yahay, ma abuuri doonto codsi deyn nuqul ah. Taa baddalkeeda, waxay dib u diri doontaa fariimaha dadweynaha mawduuca Kafka waxayna rajaynaysaa in go'aan qaadashada ku guulaysato markan.
Caqabadaha ugu muhiimsan ee habkan waxaa ka mid ah kakanaanta dheeraadka ah ee la xidhiidha qaabka cusub ee barnaamijka, joogteynta ugu dambeyntii (maadaama macmiilku isla markiiba ogaan doono natiijada), iyo shuruudaha dhammaan macquulka ganacsiga si ay u noqdaan kuwo awood leh.
Waa maxay soo saaridda dhacdada, sideese halkan loogu dabaqi karaa? Soo saarista dhacdada waa qaab dhismeedka software ee loo isticmaalo in lagu qaabeeyo xaalada nidaamka iyada oo la qabanayo dhammaan isbeddelada xogtiisa sida dhacdooyin taxane ah oo aan la bedeli karin. Dhacdooyinkani waxay matalaan xaqiiqo ama isbedel dawladeed waxayna u adeegaan sida isha keliya ee runta ee nidaamka nidaamka hadda jira. Markaa, farsamo ahaan, annagoo fulinayna nidaamka-soo-saarka dhacdooyinka, waxaanu hore ugu haysanay dhammaan dhacdooyinka EventStore, EventStore-kan waxa u isticmaali kara macaamiishu hal il oo runta ah oo ku saabsan wixii dhacay. Looma baahna xal xog gaar ah oo loogu talagalay dabagalka dhammaan isbeddelada ama welwelka ku saabsan dalbashada, dhibaatada kaliya ayaa ah fadhiga dhinaca wax akhrinta tan iyo markii la awoodo in la helo xaaladda dhabta ah ee cidda loo baahan yahay in lagu celiyo dhammaan dhacdooyinka.
Maqaalkan, waxaan dib u eegnay dhowr habab oo lagu dhisayo fariimaha la isku halayn karo ee nidaamyada la qaybiyay. Waxaa jira dhowr talooyin oo laga yaabo inaan tixgelinno marka aan dhiseyno nidaamyada leh sifooyinkan
Marka xigta, waxaan eegi doonaa tusaale wax ku ool ah oo ku saabsan hirgelinta sanduuqa wax kala iibsiga. Eeg
adiga!