RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha

Dulqaadka cilada iyo helitaan sare waa mowduucyo waaweyn, marka waxaan maqaallo gaar ah u huri doonaa RabbitMQ iyo Kafka. Maqaalkani wuxuu ku saabsan yahay RabbitMQ, midda xigtana waxay ku saabsan tahay Kafka, marka la barbardhigo RabbitMQ. Kani waa maqaal dheer, ee is deji.

Aynu eegno dulqaadka qaladka, joogtaynta, iyo helitaanka sare ee xeeladaha (HA) iyo ganacsiyada ay istaraatijiyad kastaa samayso. RabbitMQ waxa uu ku shaqayn karaa rucubyada qanjidhada - ka dibna waxa loo kala saaraa hab la qaybiyay. Marka ay timaado nidaamyada qaybsan, waxaan inta badan ka hadalnaa joogtaynta iyo helitaanka.

Fikradahani waxay tilmaamayaan sida nidaamku u dhaqmo marka uu guuldareysto. Isku xirka shabakada oo guul daraystay, server-ka oo xumaaday, wadida adag ee wadida, server ku meel gaadhka ah oo aan la heli karin sababtoo ah ururinta qashinka, baakada luminta, ama xidhiidhka shabakada oo gaabis ah. Waxaas oo dhan waxay u horseedi karaan luminta xogta ama isku dhacyada. Waxaa soo baxday in ay tahay wax aan macquul aheyn in la rakibo nidaam labadaba si buuxda u siman (ma jirto xog lumis, kala duwanaansho xog) oo la heli karo (waxay aqbali doontaa akhrinta iyo qorista) dhammaan xaaladaha guuldarada.

Waxaan arki doonaa in joogteynta iyo helitaanku ay ku yaaliin darafyo iska soo horjeeda, oo aad u baahan tahay inaad dooratid habka aad u wanaajin lahayd. Akhbaarta wanaagsan ayaa ah in RabbitMQ uu doorashadani suurtagal yahay. Waxaad haysataa kabaallayaasha "nerdy" ee noocaan ah si aad ugu beddesho dheelitirka si joogto ah ama helitaan weyn.

Waxaan siin doonaa fiiro gaar ah taas oo qaabeynta u horseedaya luminta xogta sababtoo ah diiwaannada la xaqiijiyay. Waxa jira silsilad masuuliyadeed oo u dhaxaysa daabacayaasha, dullaaliinta iyo macaamiisha. Marka fariinta loo gudbiyo dilaalka, waa shaqadiisa inuusan lumin fariinta. Marka dillaalku uu qirto soo-saareyntii daabacaha ee fariinta, ma fileyno inay lunto. Laakiin waxaan arki doonaa in tani ay dhab ahaantii dhici karto iyadoo ku xiran dullaalkaaga iyo qaabeynta daabacaha.

Aasaaska U adkaysiga Node Keliya

Saf-mareenka adkaysiga leh

Waxaa jira laba nooc oo saf ah gudaha RabbitMQ: waara iyo kuwa aan waara lahayn. Dhammaan safafka waxaa lagu keydiyay xogta Mnesia. Safafka raagaya ayaa dib loo xayaysiiyaa bilowga node-ka oo markaas ka badbaadaan dib u bilaabashada, shilalka nidaamka, ama shilalka server-ka (ilaa xogta ay sii jirto). Tani waxay ka dhigan tahay in ilaa iyo inta aad ku dhawaaqdo marinka (isweydaarsiga) iyo safka si aad u adkaysato, kaabayaasha safka/jidku waxay ku soo laaban doonaan khadka.

Safafka isbedbedelaya iyo jiheynta waa la saaraa marka noodhka dib loo bilaabo.

Fariimaha joogtada ah

Sababtoo ah safku waa raagaya macnaheedu maaha in dhammaan fariimaha ay ka badbaadayaan noodhka dib u bilaabmaya. Kaliya fariimaha uu dhigay daabacuhu sida waara (joogto ah). Farriimaha joogtada ahi waxay ku abuuraan dullaal dheeraad ah, laakiin haddii farriinta luminta ay tahay mid aan la aqbali karin, markaa ma jirto ikhtiyaar kale.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 1. Matrix joogtaynta

Ku ururinta oo leh muraayada safka

Si aan uga badbaadno luminta dallaalka, waxaan u baahannahay dib u dhac. Waxaan isku dari karnaa noodhka badan ee RabbitMQ koox ahaan, ka dibna ku dari karnaa dheeraad ah annagoo ku soo celinayna safafka u dhexeeya qanjidhada badan. Sidan, haddii mid ka mid ah noodu ku guuldareysto, ma lumin xogta oo waa la heli karaa.

Muraayadaha safka:

  • hal saf oo weyn (master), kaas oo helaya dhammaan amarrada qorista iyo akhrinta
  • hal ama in ka badan muraayado helay dhammaan fariimaha iyo xogta badan ee safka ugu weyn. Muraayadahani maaha kuwo loogu talagalay is-miix-riixinta, laakiin kaliya waxay u taagan yihiin shaqo-ka-noqosho.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 2. Muraayadaha safka

Muraayadda waxaa dejiya siyaasadda ku habboon. Dhexdeeda waxaad ka dooran kartaa isku-duubnida soo noqnoqda iyo xitaa noodhka ay tahay in safku ku jiro. Tusaalooyinka:

  • ha-mode: all
  • ha-mode: exactly, ha-params: 2 (hal sayid iyo hal muraayad)
  • ha-mode: nodes, ha-params: rabbit@node1, rabbit@node2

Xaqiijinta daabacaha

Si loo gaaro duubis joogto ah, Daabacuhu wuxuu xaqiijinayaa waa loo baahan yahay. La'aantood, waxaa jira khatar ah in fariimaha la lumiyo. Xaqiijinta ayaa loo diraa daabacaha ka dib marka fariinta lagu qoro saxanka. RabbitMQ wuxuu ku qoraa farriimaha saxanka marka la helo, laakiin wuxuu ku qoraa si xilli-xilliyeedka, gobolka dhowr boqol oo millise seconds. Marka safka la muujiyo, qirashada waxa la soo diraa oo keliya ka dib marka dhammaan muraayaduhu ay sidoo kale ku qoraan nuqulka fariinta saxanka. Tani waxay ka dhigan tahay in isticmaalka xaqiijinta ay ku darayso daahitaanka, laakiin haddii xogta amniga ay muhiim tahay, markaa waa lagama maarmaan.

Safka guuldarada

Marka uu dallaalku ka tago ama uu shil galo, dhammaan hoggaamiyeyaasha safka (masters) ee ku jira noodhkaas ayaa shil ku dhacay. Kooxdu waxay markaas doorataa muraayadda ugu da'da weyn ee sayid kasta waxayna u dallacsiisaa sayid cusub.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 3. Safafka muraayadaha badan iyo siyaasadahooda

Dallaalka 3 ayaa hoos u dhacay. Ogsoonow in muraayada Queue C ee ku taal Broker 2 loo dalacsiinayo Master. Sidoo kale ogow in muraayad cusub loo sameeyay Queue C on Broker 1. RabbitMQ wuxuu had iyo jeer isku dayaa inuu ilaaliyo qodobka soo noqnoqda ee lagu qeexay siyaasadahaaga.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 4. Dallaalkii 3 wuu fashilmay, taasoo keentay in safka C uu fashilmo

Dallaalka soo socda 1 wuu dhacayaa! Waxa noo hadhay hal dilaal. Muraayada Queue B waxa loo dalacsiiyay in uu yahay sayid.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Ис. 5

Waxaan soo celinay dallaalkii 1. Iyadoo aan loo eegin sida wanaagsan ee xogtu uga badbaado lumitaanka iyo soo kabashada dullaalku, dhammaan fariimaha safka muraayada ah waa la tuurayaa marka dib loo bilaabo. Tani waa muhiim in la ogaado sababtoo ah waxaa jiri doona cawaaqib. Waxaan eegi doonaa kuwan saameyn dhawaan. Markaa Broker 1 hadda waa xubin ka mid ah kooxda mar labaad, kooxduna waxay isku daydaa inay raacdo siyaasadaha oo sidaas darteed waxay muraayado ku abuurtaa Broker 1.

Xaaladdan oo kale, luminta Broker 1 waa la dhammaystiray, sida xogta, sidaas darteed Queue B ee aan muraayadda lahayn ayaa si buuxda u lumay.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 6. Dallaalka 1 ayaa ku soo laabtay adeegga

Broker 3 wuxuu ku soo laabtay khadka, markaa safafka A iyo B waxay dib u helaan muraayadaha lagu abuuray si ay u qanciyaan siyaasadahooda HA. Laakiin hadda dhammaan safafka ugu muhiimsan waxay ku yaalliin hal nood! Tani maaha mid ku habboon, xitaa qaybinta u dhaxaysa noodhka ayaa ka fiican. Nasiib darro, ma jiraan doorashooyin badan halkan oo lagu dheellitirayo sayidyada. Dib ayaan ugu soo laaban doonaa arintaan sababtoo ah waxaan u baahanahay inaan marka hore eegno isku xirnaanta safka.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 7. Dallaalka 3 ayaa ku soo laabtay adeegga. Dhammaan safafka ugu muhiimsan ee hal nood!

Markaa hadda waa inaad fikrad ka haysataa sida muraayaduhu u bixiyaan dib-u-celinta iyo dulqaadka cilladaha. Tani waxay hubinaysaa helitaanka haddii ay dhacdo hal unug oo cillad ah waxayna ka ilaalinaysaa luminta xogta. Laakiin weli ma aannu samayn, sababtoo ah dhab ahaantii aad bay u dhib badan tahay.

Wadajirka

Markaad abuureyso muraayad cusub, dhammaan fariimaha cusub ayaa had iyo jeer lagu soo celin doonaa muraayadan iyo kuwa kaleba. Sida xogta hadda jirta ee safka sare, waxaan ku celin karnaa muraayad cusub, kaas oo noqda nuqul dhamaystiran oo sayidkiisa ah. Waxaan sidoo kale dooran karnaa inaanan soo celin fariimaha jira oo aan u ogolaano safka ugu weyn iyo muraayadda cusub waqtigeeda, iyada oo farriimaha cusubi ay imaanayaan dabada iyo farriimaha jira ee ka tagaya madaxa safka ugu weyn.

Isku xidhkan si toos ah ayaa loo sameeyaa ama gacanta waxaana lagu maareeyaa iyadoo la isticmaalayo nidaamka safka. Bal aan tusaale u soo qaadano.

Waxaan leenahay laba saf oo muraayad ah. Safka A si toos ah ayaa loo wada shaqeeyaa, safka Bna gacanta ayaa la isla meel dhigay. Labada safba waxay ka kooban yihiin toban farriimood.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 8. Laba saf oo leh habab isku xidhid oo kala duwan

Hadda waxaan luminay Dillaalkii 3.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 9. Dilaalkii 3 ayaa dhacay

Dallaalka 3 ayaa ku soo noqday adeegga. Kooxdu waxay u abuurtaa muraayad saf kasta oo ku yaal noodhka cusub waxayna si toos ah ula midaysaa safka cusub ee A iyo sayidkii. Si kastaba ha ahaatee, muraayada safka cusub ee B waa mid madhan. Sidan ayaanu ku haysanaa shaqo-ka-celis buuxa oo ku jira Queue A iyo hal muraayad oo keliya oo loogu talagalay fariimaha safka B ee jira.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 10. Muraayada cusub ee Queue A waxay helaysaa dhammaan fariimaha jira, laakiin muraayadda cusub ee Queue B ma hesho.

Toban farriimo oo kale ayaa ku yimid labada saf. Dallaalkii 2 dabadeed wuu burburay oo Queue A wuxuu dib ugu soo laabtay muraayaddii ugu da'da weynayd, kaas oo ku yaal Broker 1. Ma jiro wax xog ah oo lumaya marka uu guuldareysto. Queue B, waxaa jira labaatan farriimo oo ku jira sayidkii iyo toban kaliya muraayadda sababtoo ah safkani waligiis ma soo koobin tobankii farrimood ee asalka ahaa.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 11. Safka A wuxuu dib ugu noqdaa Broker 1 isagoon lumin fariimaha

Toban farriimo oo kale ayaa ku yimid labada saf. Hadda Broker 1 wuu burburay. Queue A si sahal ah ayuu muraayadda ugu wareegayaa isagoon lumin fariimaha. Si kastaba ha ahaatee, safka B ayaa haysta dhibaatooyin. Halkaa marka ay marayso waxaan kor u qaadi karnaa helitaanka ama joogteynta.

Haddii aan rabno inaan wanaajino gelitaanka, markaa siyaasadda ha-kor u qaad-ku-guuldarrida waa in lagu rakibaa gudaha had iyo jeer. Tani waa qiimaha caadiga ah, markaa si fudud ma qeexi kartid siyaasadda gabi ahaanba. Xaaladdan oo kale, waxaan asal ahaan u oggolaaneynaa guuldarrooyinka muraayadaha aan la isku dhejin. Tani waxay sababi doontaa in fariimaha lumaan, laakiin safku wuxuu ahaan doonaa mid la akhriyi karo oo la qori karo.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 12. Safka A waxa dib loogu rogaa Broker 3 iyada oo aan la lumin fariimaha. Safka B waxa uu dib ugu soo noqdaa dallaalka 3 oo ay toban fariimo lumeen

Waxaan sidoo kale rakibi karnaa ha-promote-on-failure macno ahaan when-synced. Xaaladdan oo kale, halkii dib loogu soo celin lahaa muraayadda, safku wuxuu sugi doonaa ilaa Broker 1 oo xogtiisu ku soo noqoto habka internetka. Ka dib markay soo noqoto, safka ugu weyn wuxuu ku soo laabtay Broker 1 iyada oo aan wax xog ah lumin. Helitaanka waxaa loo huray amniga xogta. Laakiin tani waa hab halis ah oo xitaa u horseedi kara luminta xogta dhamaystiran, taas oo aan eegi doono wax yar.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 13. Safafka B ayaa weli ah lama heli karo ka dib markii laga badiyay Broker 1

Waxaa laga yaabaa inaad waydiiso, "Miyay fiicantahay inaadan waligaa isticmaalin isku-dubarid toos ah?" Jawaabtu waa isku-dubaridku waa hawlgal xannibid. Inta lagu jiro wada shaqaynta, safka ugu weyn ma qaban karo wax akhrin ama qoraal ah!

Bal aan tusaale u soo qaadano. Hadda waxaan haynaa safaf aad u dhaadheer. Sidee bay u kori karaan cabbirka noocaas ah? Sababo dhowr ah dartood:

  • Safafka si firfircoon looma isticmaalo
  • Kuwani waa safaf dheereeya, oo hadda macaamiishu waa gaabiyaan
  • Waa safaf dheereeya, cilad ayaa dhacday iyo macaamiishu waa ay soo qabanayaan

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 14. Laba saf oo waaweyn oo leh qaabab isku-dubarid oo kala duwan

Hadda dallaalkii 3 ayaa dhacay.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 15. Dallaalkii 3 ayaa dhacay, isagoo saf walba kaga tagay hal sayid iyo muraayad

Broker 3 ayaa ku soo laabtay khadka waxaana la abuuray muraayado cusub. Safka ugu weyn A wuxuu bilaabay inuu ku celceliyo fariimaha jira muraayadda cusub, inta lagu jiro wakhtigan safka lama heli karo. Waxay qaadataa laba saacadood in lagu celceliyo xogta, taasoo keentay in laba saacadood oo wakhti dhimis ah safkan!

Si kastaba ha ahaatee, safka B ayaa weli diyaar ah muddada oo dhan. Waxay u hurtay wax ka dhimis ah helitaan.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 16. Safka ayaa ah mid aan la heli karin inta lagu guda jiro wada shaqaynta

Laba saacadood ka dib, Queue A sidoo kale waa diyaar oo wuxuu bilaabi karaa inuu aqbalo wax akhrinta oo haddana qoro.

Cusbooneysiinta

Dhaqankan xannibaadda inta lagu guda jiro wada shaqaynta ayaa ka dhigaysa mid adag in la cusboonaysiiyo rucubyada safafka aadka u weyn wata. Mar marka qaarkood, master node wuxuu u baahan yahay in dib loo bilaabo, taas oo macnaheedu yahay ama u beddelo muraayad ama la joojiyo safka inta server-ka la cusboonaysiinayo. Haddii aan dooranno inaan u gudubno, waxaan lumin doonnaa farriimaha haddii aan muraayadaha la isku dhejin. Sida caadiga ah, inta lagu jiro dillaalku, guuldarreysiga muraayadda aan la socon lama sameeyo. Tani waxay ka dhigan tahay in sida ugu dhakhsaha badan ee dillaalku u soo laabto, ma lumino wax farriimo ah, kaliya dhaawaca ayaa ahaa saf fudud. Xeerarka dhaqanka marka dillaalku go'o waxa dejiya siyaasad ha-promote-on-shutdown. Waxaad dejin kartaa mid ka mid ah laba qiime:

  • always= u gudbida muraayadaha aan la jaanqaadin waa la dajiyay
  • when-synced= U gudub muraayad isku xidhan oo keliya, haddii kale safku wuxuu noqdaa mid aan la akhriyi karin oo aan la qori karin. Safku waxa uu ku soo noqdaa adeega isla marka uu dilaalku soo noqdo

Hal hab ama mid kale, oo leh safaf waaweyn waa inaad doorataa inta u dhaxaysa luminta xogta iyo helitaan la'aanta.

Marka Helitaanku uu hagaajiyo Amniga Xogta

Waxa jira hal dhibaato oo kale oo ay tahay in la tixgeliyo ka hor inta aanad go'aan gaadhin. Iyadoo wada shaqayn toos ah ay u roon tahay dib u dhigista, sidee ayay u saamaynaysaa amniga xogta? Dabcan, iyada oo dib-u-celin wanaagsan, RabbitMQ ay u badan tahay in ay lumiyaan farriimaha jira, laakiin ka waran farriimaha cusub ee daabacayaasha?

Halkan waxaad u baahan tahay inaad tixgeliso kuwan soo socda:

  • Ma daabacuhu si fudud ma u soo celin karaa khalad oo ma heli karaa adeega kor u kaca ama isticmaaluhu inuu mar kale isku dayo hadhow?
  • Daabacuhu ma ku badbaadin karaa fariinta gudaha ama kaydka xogta si uu mar kale isugu dayo hadhow?

Haddii daabacaaduhu kaliya tuuri karo fariinta, markaa dhab ahaantii, hagaajinta helitaanku waxay sidoo kale hagaajinaysaa amniga xogta.

Haddaba, waa in la raadiyaa isu-dheellitirnaan, xalkuna waxa uu ku xidhan yahay xaaladda gaarka ah.

Dhibaatooyinka ha-promote-on-failure=marka la isku dhejiyay

Fikradda ha-kor u qaad-ku-guuldarrida= marka la isku dhejiyo waa in aan ka hortagno u beddelashada muraayad aan la wadaagin oo aan ka ilaalinno luminta xogta. Safku waa mid aan la akhriyin ama la qori karin. Taa baddalkeeda, waxaan isku dayeynaa inaan dib u soo ceshano dilaalkii burburay oo xogtiisa ay saxsan tahay si uu dib ugu bilaabo shaqadiisa master-ka iyada oo aan xogta lumin.

Laakiin (oo tani waa mid weyn laakiin) haddii dilaalku uu lumiyay xogtiisa, markaa waxaan leenahay dhibaato weyn: safka ayaa lumay! Xogta oo dhami way tagtay! Xitaa haddii aad leedahay muraayado inta badan la qabsado safka ugu muhiimsan, muraayadahaas sidoo kale waa la tuuray.

Si dib loogu daro noode isla magaca leh, waxaan u sheegaynaa kooxda inay iloobaan noodhka lumay (oo wata amarka rabbitmqctl ilow_cluster_node) oo bilow dillaal cusub oo wata isla magaca martida. Iyadoo kooxdu ay xasuusanayso busta luntay, waxay xasuusataa safkii hore iyo muraayadaha aan la jaanqaadin. Marka kooxi loo sheego inay ilowdo noodhka agoonta, safkaas waa la ilaaway. Hadda waxaan u baahanahay inaan ku dhawaaqno. Waxaan luminay dhammaan xogta, inkastoo aan haysanay muraayado leh qayb xog ah. Way fiicnaan lahayd in loo beddelo muraayad aan la wada socon!

Sidaa darteed, isku-dubbaridka gacanta (iyo ku guul-darraysiga in la wada shaqeeyo) marka lagu daro ha-promote-on-failure=when-synced, fikradayda, aad khatar u ah. Dukumiintiyadu waxay leeyihiin doorashadani waxay u jirtaa amniga xogta, laakiin waa mindi laba af leh.

Dib-u-dheellitirka Master-ka

Sida ballantu ahayd, waxaan ku soo laabaneynaa dhibaatada ururinta dhammaan sayidyada hal ama dhowr nood. Tani waxay xitaa ku dhici kartaa natiijada cusboonaysiinta kooxdu. Kutlada saddex-noodka ah, dhammaan safafka sayidku waxay ku ururi doonaan hal ama laba nood.

Dib-u-habaynta masters-ka waxay noqon kartaa dhibaato laba sababood dartood:

  • Ma jiraan qalab wanaagsan oo lagu sameeyo dib-u-dheellitirka
  • Isku xidhka safka

Waxa jira qolo saddexaad oo isu dheelli tiran plugin, oo aan si rasmi ah loo taageerin. Ku saabsan plugins qolo saddexaad ee buug-gacmeedka RabbitMQ ayuu yidhi: "Plugin-ku wuxuu bixiyaa habayn dheeri ah iyo qalab warbixineed, laakiin ma taageeraan ama ma xaqiijiyaan kooxda RabbitMQ. Isticmaal khatartaada."

Waxaa jira khiyaamo kale oo lagu dhaqaajiyo safka ugu weyn iyada oo loo marayo siyaasadaha HA. Buuggu wuxuu sheegayaa qoraal Tan awgeed. Waxay u shaqeysaa sidatan:

  • Ka saara dhammaan muraayadaha iyadoo la adeegsanayo siyaasad ku meel gaar ah oo leh mudnaan sare marka loo eego siyaasadda HA ee jirta.
  • Beddelaysaa siyaasadda ku meel gaadhka ah ee HA si ay u isticmaasho habka noodhka, iyada oo caddaynaysa noodhka kaas oo safka sare loo wareejinayo.
  • Waxay isku xidhaa safka socdaalka riixitaanka.
  • Ka dib markii socdaalka dhammaysto, wuxuu tirtiraa siyaasadda ku meel gaadhka ah. Siyaasadda bilowga ah ee HA ayaa dhaqan galaysa waxaana la abuuray tirada muraayadaha loo baahan yahay.

Dhinaca hoose ayaa ah in habkani aanu shaqaynayn haddii aad leedahay safaf waaweyn ama shuruudo shaqo dhimis adag.

Hadda aan aragno sida kooxaha RabbitMQ ay ula shaqeeyaan qaybaha shabakadda.

Luminta isku xirnaanta

Noodsyada nidaamka la qaybiyay waxaa ku xiran isku xirka shabakadaha, isku xirka shabakaduna waa la goyn karaa. Inta jeer ee maqnaanshaha waxay kuxirantahay kaabayaasha deegaanka ama isku halaynta daruurta la doortay. Si kastaba ha noqotee, nidaamyada la qaybiyay waa inay awoodaan inay la qabsadaan iyaga. Mar labaad waxaan haysanaa doorasho u dhexeeya helitaanka iyo joogteynta, mar labaad warka wanaagsan ayaa ah in RabbitMQ ay bixiso labada ikhtiyaar (oo aan isku mar ahayn).

RabbitMQ waxaan haysanaa laba ikhtiyaar oo waaweyn:

  • Oggolow kala qaybsanaanta macquulka ah (kala qaybsanaanta-maskaxda). Tani waxay xaqiijinaysaa helitaanka, laakiin waxay keeni kartaa luminta xogta.
  • Dami kala soocida macquulka ah. Waxa laga yaabaa inay keento luminta helitaan muddo gaaban ah iyadoo ku xidhan sida macaamiishu ugu xidhmaan kooxda. Waxa kale oo ay keeni kartaa in gebi ahaanba la waayo koox laba-node ah.

Laakin waa maxay kala tagga macquulka ah? Tani waa marka kooxdu laba u kala jabto sababtoo ah luminta isku xirka shabakada. Dhinac kasta, muraayadaha ayaa loo dalacsiiyay sayid, si ay ugu dambeyntii u jiraan dhowr masters halkii marba.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 17. Safka ugu weyn iyo laba muraayadood, oo mid kastaa ku yaal meel gooni ah. Kadibna waxaa dhacda in shabakadu ay xumaato oo ay hal muraayad go'do. Noolka la kala soocay wuxuu arkayaa in labada kale ay ka dhaceen oo kor u qaadaan muraayadaha sayidkii. Hadda waxaan haynaa laba saf oo waaweyn, mid la qori karo iyo mid la akhriyi karo.

Haddii daabacayaashu xogta u diraan labada sayid, waxaan ku dhamaanaynaa laba nuqul oo kala duwan oo safka ah.

Hababka kala duwan ee RabbitMQ ayaa bixiya helitaan ama joogtayn.

Iska daa qaabka (default)

Habkani wuxuu xaqiijinayaa gelida Kadib luminta isku xirnaanta, kala soocid macquul ah ayaa dhacda. Ka dib markii la soo celiyo isku xirnaanta, maamuluhu waa inuu go'aansadaa qaybta uu siinayo mudnaanta. Dhinacii laga badiyay dib ayaa loo bilaabi doonaa oo dhammaan xogta la ururiyay ee dhinacaas waa la lumin doonaa.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 18. Saddex madbacadood ayaa ku xidhan saddex dilaal. Gudaha, kooxda dariiqyada waxay soo mariyaan dhammaan codsiyada safka ugu weyn ee Broker 2.

Hadda waxaan luminay Broker 3. Wuxuu arkayaa in dilaaliinta kale ay ka dhaceen oo kor u qaadaya muraayadiisa sayidkiisa. Tani waa sida ay u dhacdo kala tag macquul ah.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 19. Kala qaybsanaan macquul ah (kala qaybsanaan maskaxeed). Diiwaanadu waxay galaan laba saf oo waaweyn, labada nuqulna way kala duwan yihiin.

Isku xirnaanta waa la soo celiyay, laakiin kala soocitaan macquul ah ayaa weli ah. Maamuluhu waa inuu gacantiisa ku doortaa dhinaca lumaya. Xaaladda hoose, maamulaha ayaa dib u bilaabaya Broker 3. Dhammaan fariimaha uusan u suurtagelin inuu gudbiyo waa lumay.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 20. Maamuluhu wuxuu curyaamiyaa dallaalka 3.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 21. Maamuluhu waxa uu bilaabaya Broker 3 oo waxa ay ku biirtay kooxda, lumiyay dhamaan fariimaha halkaas ku hadhay.

Intii uu lumay isku xirnaanta iyo soo celinta ka dib, kooxda iyo safkan ayaa diyaar u ahaa akhriska iyo qorista.

Habka bogsashada

Waxay u shaqeysaa si la mid ah habka Ignore, marka laga reebo in kutlada lafteedu ay si toos ah u doorato dhinaca lumisay ka dib kala qaybsanaanta iyo soo celinta isku xirnaanta. Dhinacii laga adkaaday waxa ay ku soo noqonayaan kooxdu faaruq, safkuna waxa uu lumiyaa dhammaan fariimaha loo diray dhinacaas oo keliya.

Jooji Habka Dadka laga tirada badan yahay

Haddii aynaan doonayn in aan oggolaanno qaybinta macquulka ah, markaa ikhtiyaarkayaga keliya ayaa ah in aan tuurno wax-akhrinta iyo wax ku qoridda dhinaca yar ka dib qaybinta kooxda. Marka uu dallaalku arko in ay dhinaca ka yar tahay, waxa uu joojinayaa shaqada, taas oo ah, in uu xidho dhammaan xidhiidhyadii jiray oo uu diido mid cusub. Hal ilbiriqsikiiba hal mar waxay hubisaa soo celinta isku xirnaanta. Marka isku xirnaanta dib loo soo celiyo, waxay dib u bilaabataa shaqadii waxayna ku biirtaa kooxda.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 22. Saddex madbacadood ayaa ku xidhan saddex dilaal. Gudaha, kooxda dariiqyada waxay soo mariyaan dhammaan codsiyada safka ugu weyn ee Broker 2.

Dillaaliinta 1 iyo 2 ayaa markaas ka soo baxay dallaalkii 3. Halkii ay muraayadooda u xayeysiin lahaayeen si ay u maamulaan, Broker 3 waa uu hakiyaa oo noqdaa mid aan la heli karin.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 23. Dallaalkii 3 wuu hakiyay, wuxuu ka jaray dhammaan macaamiisha, wuxuuna diiday codsiyada xiriirka.

Marka isku xirnaanta dib loo soo celiyo, waxay ku soo noqotaa kooxda

Aynu eegno tusaale kale oo uu safka ugu weyni ku jiro Broker 3.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 24. Safka ugu weyn ee Broker 3.

Kadibna isla luminta isku xirnaanta ayaa dhacda. Dallaalkii 3 wuu hakaday sababtoo ah waxay ku taal dhinaca yar. Dhinaca kale, noodhadhku waxay arkaan in Broker 3 uu dhacay, sidaas darteed muraayadda hore ee Brokers 1 iyo 2 ayaa loo dalacsiiyay si uu u barto.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 25. U gudubka dallaalka 2 haddii aan la heli karin Broker 3.

Marka isku xidhka la soo celiyo, Broker 3 ayaa ku biiri doona kooxda

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare ee Kooxaha
Bariis 26. Kooxdu waxay ku soo noqotay hawl-galkeedii caadiga ahaa.

Waxa muhiimka ah in la fahmo halkan waa in aan helno joogtayn, laakiin sidoo kale waxaan heli karnaa helitaan, haddii Waxaan si guul leh ugu wareejin doonaa macaamiisha qaybta inteeda badan. Xaaladaha intooda badan, aniga shaqsi ahaan waxaan dooran lahaa habka Hakinta Dadka laga tirada badan yahay, laakiin runtii waxay kuxirantahay kiiska shaqsiga ah.

Si loo hubiyo helitaanka, waa muhiim in la hubiyo in macaamiishu ay si guul leh ugu xidhmaan martigeliyaha. Aynu eegno dookhyadayada.

Xaqiijinta Isku xidhka Macmiilka

Waxaan haynaa dhowr ikhtiyaar oo ah sida loogu hagayo macaamiisha qaybta ugu weyn ee kutlada ama noodhka shaqada (ka dib marka hal nood uu guuldareysto) ka dib luminta isku xirnaanta. Marka hore, aan xasuusanno in saf gaar ah lagu hayo meel gaar ah, laakiin habaynta iyo siyaasadaha ayaa lagu soo koobay dhammaan noodyada. Macaamiishu waxay ku xidhi karaan nood kasta, iyo marin-u-socodka gudaha ayaa ku hagi doona meesha ay u baahan yihiin inay aadaan. Laakin marka qanjirada la hakiyo, waxay diidaysaa isku xirka, markaa macaamiishu waa inay ku xidhmaan noodh kale. Haddii udurku ka dhaco, waxaa jira wax yar oo uu samayn karo.

Ikhtiyaaradayada:

  • Kooxda waxa lagu galaa iyada oo la isticmaalayo dheellitirka culayska kaas oo si fudud wareegtada ku dhex mara qanjidhada iyo macaamiishu isku dayaan isku xidhka ilaa ay guulaystaan. Haddii qanjisku hoos u dhaco ama la hakiyo, ka dib isku dayada lagu xirayo noodhkaas way guuldarraysan doonaan, laakiin isku dayada xiga waxay aadi doonaan adeegayaal kale (oo ah qaab wareegsan). Tani waxay ku habboon tahay luminta muddada gaaban ee isku xirnaanta ama server-ka hoos u dhacay kaas oo si dhakhso ah dib loogu soo celin doono.
  • Ka gal kutlada iyada oo loo marayo dheellitirka culeyska oo ka saar noodhadhka hakiyay/fashilmay liiska isla marka la ogaado. Haddii aan tan si dhakhso ah u samayno, iyo haddii macaamiishu ay awoodaan inay dib u tijaabiyaan isku xirka, markaa waxaan ku guuleysan doonaa helitaan joogto ah.
  • Sii macmiil kasta liiska dhammaan qanjidhada, iyo macmiilku si aan kala sooc lahayn u doorto midkood marka la isku xidhayo. Haddii ay hesho cilad marka la isku dayayo in la isku xidho, waxa ay u guuraysaa noodhka xiga ee liiska ilaa uu isku xidho.
  • Ka saar taraafikada qanjirada fashilantay/hakinta iyadoo la isticmaalayo DNS. Tan waxaa lagu sameeyaa iyadoo la isticmaalayo TTL yar.

natiijooyinka

Kutlada RabbitMQ waxay leedahay faa'iidooyin iyo faa'iido darrooyinkeeda. Khasaaraha ugu daran waa kuwan:

  • marka lagu biirayo koox, noodhadhku waxay tuurayaan xogtooda;
  • xannibidda wada shaqaynta waxay sababtaa in safku noqdo mid aan la heli karin.

Dhammaan go'aamada adag waxay ka soo jeedaan labadan astaamood ee qaab-dhismeedka. Haddii RabbitMQ uu kaydin karo xogta marka kooxdu dib ugu biirto, markaas wada shaqayntu aad bay u dhakhso badan tahay. Haddii ay awood u yeelan lahayd in aanay xannibin wada shaqaynta, waxa ay si fiican u taageeri lahayd safafka waaweyn. Hagaajinta labadan arrimood waxay si weyn u wanaajinaysaa waxqabadka RabbitMQ sida tignoolajiyada fariimaha u dulqaadanaysa oo aadka loo heli karo. Waxaan ka warwareegi lahaa inaan kula taliyo RabbitMQ la ururinta xaaladaha soo socda:

  • Shabakad aan la isku halayn karin.
  • Kaydinta aan la isku halayn karin.
  • Safaf aad u dhaadheer

Marka ay timaado goobaha helitaanka sare, tixgeli kuwa soo socda:

  • ha-promote-on-failure=always
  • ha-sync-mode=manual
  • cluster_partition_handling=ignore (ama autoheal)
  • fariimaha joogtada ah
  • Hubi in macaamiishu ay ku xidhmaan noodhka firfircoon marka qanjidhada qaar ay ku fashilmaan

Joogteynta (badbaadada xogta), tixgeli dejinta soo socota:

  • Daabacuhu waxa uu xaqiijiyaa oo qirayaa buug-gacmeedka dhinaca macaamilka
  • ha-promote-on-failure=when-synced, haddii daabacaadayaashu ay isku dayi karaan mar kale ka dib iyo haddii aad haysato kayd aad loogu kalsoon yahay! Haddii kale dhig =always.
  • ha-sync-mode=automatic (laakin safafka waaweyn ee aan firfircoonayn habka gacanta ayaa laga yaabaa in loo baahdo; sidoo kale ka fiirso haddii la heli la'aanta ay sababi doonto fariimaha lumaya iyo in kale)
  • Jooji qaabka dadka laga tirada badan yahay
  • fariimaha joogtada ah

Wali maanu daboolin dhammaan arrimaha u dulqaadashada khaladaadka iyo helitaanka sare; tusaale ahaan, sida loo ilaaliyo habraacyada maamulka (sida dib-u-cusboonaysiinta). Waxaan sidoo kale u baahanahay inaan ka hadalno xiriirka iyo majarafada plugin.

Haddii aan wax kale seegay, fadlan ii soo sheeg.

Sidoo kale eeg my dhajin, halkaas oo aan ku sameeyo qallafsanaan kutlada RabbitMQ iyadoo la adeegsanayo Docker iyo Blockade si aan u tijaabiyo qaar ka mid ah xaaladaha lumitaanka farriinta ee lagu sharraxay maqaalkan.

Maqaalladii hore ee taxanaha:
No. 1 - habr.com/ru/company/itsumma/blog/416629
No. 2 - habr.com/ru/company/itsumma/blog/418389
No. 3 - habr.com/ru/company/itsumma/blog/437446

Source: www.habr.com

Add a comment