RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare

Π’ maqaalkii ugu dambeeyay Waxaan u eegnay ururinta RabbitMQ dulqaadka cilladaha iyo helitaan sare. Hadda aan si qoto dheer u qodno Apache Kafka.

Halkan unugga tarankiisu waa qaybinta. Mawduuc kastaa wuxuu leeyahay hal ama dhowr qaybood. Qayb kastaa waxay leedahay hogaamiye leh ama aan lahayn. Markaad abuurayso mawduuc, waxaad cadaynaysaa tirada qaybaha iyo isku-duubnida soo noqnoqda. Qiimaha caadiga ah waa 3, taas oo macnaheedu yahay saddex nuqul: hal hoggaamiye iyo laba raacsan.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 1. Afar qaybood ayaa loo qaybiyay saddex dallaal

Dhammaan codsiyada akhrinta iyo qorista waxay u tagaan hoggaamiyaha. Raacayaashu waxay si xilliyo ah codsiyo u diraan hoggaamiyaha si ay u helaan farrimihii ugu dambeeyay. Macaamiishu weligood uma jeeddaan kuwa raacsan; kan dambe waxa uu u jiraa oo keliya ka-noqosho iyo u dulqaadashada khaladka.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare

Fashilka qaybinta

Marka dillaalku fashilmo, hoggaamiyayaasha dhawr qaybood ayaa inta badan fashilma. Mid kasta oo iyaga ka mid ah, raace ka socda noodh kale ayaa noqda hoggaamiyaha. Dhab ahaantii, tani had iyo jeer ma aha kiiska, maaddaama qodobka is-dhexgalka uu sidoo kale saameynayo: haddii ay jiraan taageerayaal isku xiran, iyo haddii kale, markaa haddii u beddelashada nuqul aan la mid ahayn waa la oggol yahay. Laakiin yeynan hadda wax isku adkayn.

Dallaalka 3 wuxuu ka baxaa shabakada, waxaana hogaamiye cusub loo doortaa qaybta 2 ee dilaal 2.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 2. Dillaal 3 ayaa dhintay, kii raacsanaa dilaal 2 ayaa loo doortay hoggaamiyaha cusub ee qaybta 2.

Dabadeed dilaalkii 1 wuu baxaa, qaybta 1-aadna waa uu waayayaa hoggaamiyihii, kaas oo doorkiisu u gudbayo dilaal 2.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 3. Hal dilaal baa hadhay. Hogaamiyayaasha oo dhami waxay ku jiraan hal dilaal oo aan lahayn shaqo ka dhimis eber ah

Marka dilaal 1 uu ku soo laabto khadka, wuxuu ku daraa afar taageere, isagoo siinaya qayb ka mid ah qayb kasta. Laakiin dhammaan hogaamiyayaasha wali waxay ku hareen dilaal 2.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 4. Hogaamiyeyaashu waxay sii ahaanayaan dilaal 2

Marka dilaalka 3 uu soo baxo, waxaan ku laabaneynaa seddex nuqul oo qayb kasta. Laakiin dhammaan hogaamiyayaasha wali waxay ku jiraan dilaal 2.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 5. Meelaynta madaxda oo aan dheeli tirnayn ka dib markii la soo celiyay dullaaladii 1 iyo 3

Kafka waxay haysataa qalab loogu talagalay dib-u-dheellitirka hoggaamiyaha ka wanaagsan midka RabbitMQ. Halkaa, waa inaad isticmaashaa plugin ama qoraal dhinac saddexaad ah kaas oo beddelay siyaasadaha u haajiridda noodhka sayidkiisa adiga oo yaraynaya shaqo-joojinnimada inta lagu jiro socdaalka. Intaa waxaa dheer, safafka waaweyn waxaan ku qasbanahay inaan aqbalno helitaan la'aanta inta lagu jiro wada-shaqeynta.

Kafka waxay leedahay fikradda "nuqullada la door biday" ee doorka hoggaamiyaha. Marka qaybaha mawduucyada la abuuro, Kafka waxay isku daydaa inay u qaybiso hoggaamiyeyaasha si siman oo ku jira qanjidhada waxayna calaamadisaa hoggaamiyeyaasha ugu horreeya kuwa la doorbiday. Waqti ka dib, sababtoo ah dib-u-kicinta server-ka, guul-darrooyinka, iyo burburka isku-xirnaanta, hoggaamiyeyaasha ayaa laga yaabaa inay ku dhamaanayaan qanjidhada kale, sida kiiska aadka u daran ee kor lagu sharaxay.

Si taas loo hagaajiyo, Kafka waxay bixisaa laba ikhtiyaar:

  • Ikhtiyaar auto.leader.rebalance.enable=run Waxay u ogolaataa qanjidhada xakamaynta inuu si toos ah dib ugu habeeyo hogaamiyaasha nuqulada la door biday oo uu soo celiyo qaybinta lebbiska ah.
  • Maamuluhu wuxuu socodsiin karaa qoraalka kafka-doorbidayaa-doorashada-doorashada.sh dib-u-dejinta gacanta.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 6. Dib u miisaamidda ka dib

Tani waxay ahayd nooc la fududeeyay ee fashilka, laakiin xaqiiqadu way ka sii adag tahay, inkasta oo aysan jirin wax aad u adag halkan. Waxaas oo dhami waxay hoos ugu soo dhacayaan nuqullada la mideeyey (In-Sync Replicas, ISR).

Nuqullada Isku-dhafan (ISR)

ISR waa qayb nuqul ka mid ah qayb ka mid ah taas oo loo arko inay tahay mid la isku daray (in-synchronized). Waxaa jira hogaamiye, laakiin waxaa laga yaabaa inaysan jirin kuwa raacsan. Dabadeystaha waxa loo tixgalinayaa in la isku daray haddii uu sameeyay nuqullo sax ah dhammaan fariimaha hoggaamiyaha ka hor inta aanay dhammaan muddada replica.lag.time.max.ms.

Dabadeystaha waa laga saarayaa ISR-da haddii ay:

  • ma codsan codsi ah in la doorto muddada u dhaxaysa replica.lag.time.max.ms (waxaa loo malaynayaa inuu dhintay)
  • ma aysan suurtagelin in ay cusbooneysiiso inta lagu guda jiro muddada replica.lag.time.max.ms (loo tixgeliyey gaabis)

Raacayaashu waxay sameeyaan codsiyada muunad inta u dhaxaysa replica.fetch.sugo.max.ms, kaas oo u dhigma 500ms.

Si aad si cad u sharaxdo ujeedada ISR, waxaan u baahanahay inaan eegno xaqiijinta soo saaraha iyo qaar ka mid ah xaaladaha fashilka. Soosaarayaashu waxay dooran karaan marka dilaalku soo diro xaqiijinta:

  • acks=0, xaqiijinta lama dirin
  • acks=1, xaqiijinta waxa la soo diraa ka dib markuu hogaamiyuhu fariin u qoro log-kiisa maxaliga ah
  • acks=all, xaqiijinta ayaa la soo diraa ka dib markii dhammaan nuqullada ISR ay u qoraan farriinta diiwaannada maxalliga ah

Eray bixinta Kafka, haddii ISR ​​ay kaydisay fariin, waa "go'antey". Acks=dhammaan waa ikhtiyaarka ugu badbaadsan, laakiin sidoo kale wuxuu ku darayaa daahitaan dheeri ah. Aynu eegno laba tusaale oo guuldarraystayaal ah iyo sida ay kala doorashadu 'acks' ula falgalaan fikradda ISR.

Acks=1 iyo ISR

Tusaalahan, waxaan arki doonaa in haddii hoggaamiyuhu aanu sugin fariin kasta oo ka timid dhammaan taageerayaasha si loo badbaadiyo, ka dibna luminta xogta waa suurtogal haddii hoggaamiyuhu ku guuldareysto. U socoshada raace aan la isku xidhin waa la hawlgelin karaa ama waa la dami karaa marka la dejiyo aan nadiif ahayn.hogaamiye.doorasho.awood u leh.

Tusaalahan, soo saaraha ayaa leh qiimaha acks=1. Qaybta waxaa loo qaybiyaa dhammaan saddexda dilaal. Dallaalka 3 ayaa ka dambeeya, waxa ay la midowday hoggaamiyaha siddeed ilbiriqsi ka hor oo hadda 7456 farriimo ayaa ka dambeeya. Dallaalka 1 ayaa hal ilbiriqsi oo kaliya ka dambeeyay. Soo saarahayaga wuxuu soo diraa fariin wuxuuna si dhakhso ah u helaa dib-u-celin, iyada oo aan lahayn kor u kaca taageerayaasha gaabiska ah ama dhintay ee hogaamiyuhu aanu sugin.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 7. ISR oo leh saddex nuqul

Broker 2 wuu guuldarraystay, soo saarahana wuxuu helay cilad xiriir ah. Ka dib markii hoggaanku u gudbo dilaalka 1, waxaan luminay 123 fariimo. Dabagalka dullaal 1 wuxuu ahaa qayb ka mid ah ISR, laakiin si buuxda loolama xidhiidhin hogaamiyaha markii uu dhacay.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 8. Farriimaha waa la lumiyaa marka ay burburto

In qaabeynta bootstrap.servers Soo-saaruhu waxa uu leeyahay dhawr dilaal oo taxan oo waxa uu waydiin karaa dilaal kale oo ah hogaamiyaha qaybta cusub. Ka dib waxa ay samaysaa xidhiidh ay la leedahay dallaalka 1 oo ay sii wadato dirista fariimaha.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 9. Dirista fariimaha waxay dib u bilaabataa nasasho yar ka dib

Broker 3 ayaa xitaa ka sii dambeeya. Waxay samaysaa codsiyo soo jiidasho leh laakiin lama jaanqaadi karo Tan waxa laga yaabaa inay sabab u tahay xidhiidhka shabakada oo gaabis ah ee ka dhexeeya dullaaliinta, arrinta kaydinta, iwm. Waxaa laga saaray ISR-ga. Hadda ISR waxay ka kooban tahay hal nuqul - hogaamiyaha! Soosaaruhu wuxuu sii wadaa inuu diro fariimaha oo uu helo xaqiijin

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 10. Raacayaasha dullaal 3 ayaa laga saaray ISR

Dallaalkii 1aad hoos buu u dhacayaa, doorkii hoggaamintuna wuxuu tagayaa dilaal 3 iyada oo lumisay 15286 fariimo! Soo-saaruhu waxa uu helayaa fariinta khaladka xidhiidhka U wareejinta hogaamiye ka baxsan ISR waxa ay ahayd mid suurta gal ah oo kaliya marka loo eego goobta aan nadiif ahayn.hogaamiye.doorasho.enable=run. Hadii lagu rakibo been ah, markaas kala-guurku ma dhacayo oo dhammaan codsiyada akhrinta iyo qorista waa la diidi doonaa. Xaaladdan oo kale, waxaan sugeynaa dilaalka 1 inuu ku soo laabto xogtiisa saxda ah ee nuqulka, kaas oo mar kale la wareegi doona hoggaanka.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 11. Dallaalkii 1 ku dhacay. Marka fashilku dhaco, tiro badan oo fariimo ah ayaa lumaya

Soo-saaraha ayaa xiriir la leh dilaalkii ugu dambeeyay oo uu arko inuu hadda yahay hogaamiyaha qaybta. Waxa uu bilaabay in uu fariimo u diro dilaal 3.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 12. Nasasho yar ka dib, fariimaha ayaa mar labaad loo diraa qaybta 0

Waxaan aragnay in, marka laga reebo hakad gaagaaban si loo dhiso xiriiryo cusub oo loo raadiyo hoggaamiye cusub, soo-saaruhu wuxuu si joogto ah u diri jiray fariimaha. Qaabayntan ayaa hubinaysa in la heli karo kharash joogta ah (badbaadinta xogta). Kafka ayaa lumisay kumanaan farriimo laakiin waxay sii waday inay aqbasho qoraalo cusub.

Acks=all iyo ISR

Aan ku celino dhacdadan mar kale, laakiin leh acks=dhammaan. Dallaalka 3 wuxuu leeyahay daahitaan celcelis ahaan afar ilbiriqsi. Soo saaraha ayaa fariin ku soo diraya acks=dhammaan, oo hadda aan helin jawaab degdeg ah. Hogaamiyuhu waxa uu sugayaa in fariinta ay badbaadiyaan dhamaan nuqulada ku jira ISR.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 13. ISR oo leh saddex nuqul. Mid ayaa gaabis ah, taasoo keentay dib u dhacyo duubis ah

Ka dib afar ilbiriqsi oo dheeri ah, dallaaliyaha 2 ayaa soo dira ack. Dhammaan nuqullada hadda si buuxda ayaa loo cusboonaysiiyay

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 14. Dhammaan nuqullada kaydiya fariimaha iyo dir ack

Dallaalka 3 hadda wuu sii dhacayaa oo waa laga saaray ISR. Latency si weyn ayaa loo dhimay sababtoo ah ma jiraan nuqullo gaabis ah oo ku hadhay ISR. Dallaalka 2 wuxuu hadda sugayaa kaliya dilaal 1, wuxuuna leeyahay dib u dhac celcelis ahaan 500 ms.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 15. Nuqulka dullaal 3 ayaa laga saaray ISR

Dabadeed dilaalkii 2 wuu dhacaa oo hoggaanku wuxuu u gudbiyaa dilaal 1 isagoon lumin fariimaha.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 16. Dallaalkii 2 dhaca

Soo saaraha ayaa helay hogaamiye cusub oo bilaabay inuu u diro fariimaha isaga. Daahitaanku waa la sii dhimay sababtoo ah ISR hadda waxay ka kooban tahay hal nuqul! Sidaa darteed ikhtiyaarka acks=dhammaan kuma darto caydhnimo.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 17. Replica on broker 1 ayaa hogaanka u qabta isaga oo aan lumin fariimaha

Dabadeed dilaal 1 waa shil oo hogaanku wuxuu tagayaa dilaal 3 iyadoo lumisay 14238 fariimo!

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 18. Dillaalkii 1 wuu dhintay oo hoggaanka oo kala wareegay goob aan nadiif ahayn waxay keenaysaa xog lumis ballaaran

Waanu ku rakibi waynay doorashada aan nadiif ahayn.hogaamiye.doorasho.awood u leh macno ahaan run. Sida caadiga ah waa loo siman yahay been ah. Dejinta acks=dhammaan с aan nadiif ahayn.hogaamiye.doorasho.enable=run waxay siisaa marin u helida qaar ka mid ah amniga xogta lagu daray. Laakiin sida aad arki karto, weli waan lumin karnaa fariimaha.

Laakiin maxaa dhacaya haddii aan rabno inaan kordhinno amniga xogta? Waad dhigi kartaa aan nadiif ahayn.hogaamiye.doorasho.enable = been, laakiin tani daruuri kama ilaalin doonto khasaaraha xogta. Haddii hoggaamiyuhu si adag u dhacay oo uu qaatay xogta, markaa fariimaha ayaa weli lumaya, oo lagu daray helitaanka helitaanka ayaa lumaya ilaa maamuluhu uu soo celiyo xaaladda.

Way fiicantahay in la hubiyo in dhammaan fariimaha ay yihiin kuwo aan badnayn, oo haddii kale la tuuro duubista. Dabadeed, ugu yaraan marka laga eego aragtida dilaaliyaha, luminta xogta ayaa suurtagal ah oo keliya haddii ay dhacdo laba ama in ka badan oo isku mid ah oo isku mid ah.

Acks=dhammaan, min.insync.replicas iyo ISR

Iyada oo qaabeynta mawduuca min.insync.replicas Waxaan kordhineynaa heerka amniga xogta. Aan mar kale mar kale marno qaybta ugu dambeysa ee dhacdadii hore, laakiin markan min.insync.replicas=2.

Markaa dilaaliinta 2 waxa uu leeyahay hogaamiye nuqul ah iyo raacaha dulaalka 3 waa laga saaray ISR.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 19. ISR laba nuqul

Dallaalka 2 wuu dhacaa oo hoggaanku wuxuu u gudbiyaa dilaal 1 iyada oo aan lumin fariimaha. Laakiin hadda ISR wuxuu ka kooban yahay hal nuqul oo keliya. Tani ma buuxinayso tirada ugu yar ee lagu heli karo diiwaanada, sidaas darteed dallaaliyuhu wuxuu kaga jawaabaa isku dayga qoraalka qalad NotEnoughReplicas.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 20. Tirada ISRs waa mid ka hoosaysa marka loo eego min.insync.replicas

Qaabayntan waxay wax u huraysaa helitaanka joogtaynta. Kahor intaanan qirin fariinta, waxaan hubineynaa in lagu qoray ugu yaraan laba nuqul. Tani waxay siinaysaa soo saaraha kalsooni badan. Halkan, luminta fariintu waxay suurtogal tahay oo keliya haddii laba nuqul ay isku mar ku fashilmaan muddo gaaban ilaa farriinta lagu soo koobo taageere dheeraad ah, taas oo aan macquul ahayn. Laakin haddii aad tahay mid aad u qallafsan, waxaad dejin kartaa qodobka ku celcelinta 5, iyo min.insync.replicas by 3. Halkan saddex dillaaliintu waa inay isku mar dhacaan si ay u lumiyaan rikoorka! Dabcan, waxaad ku bixinaysaa kalsoonidan daahitaan dheeri ah.

Marka helitaanku lagama maarmaan u yahay amniga xogta

Sida ku jirta kiiska RabbitMQ, mararka qaarkood helitaanka ayaa lagama maarmaan u ah amniga xogta. Waa kuwan waxa aad u baahan tahay inaad ka fikirto:

  • Daabaciyuhu si fudud ma u soo celin karaa khalad oo ma heli karaa adeegga 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 jawaabtu ay tahay maya, markaas wanaajinta helitaanku waxay hagaajinaysaa ammaanka xogta. Waxaad lumin doontaa xog yar haddii aad dooratid la heli karo halkii aad duubi lahayd. Sidaa darteed, wax walba waxay ku yimaadaan helitaanka dheelitirnaanta, go'aankuna wuxuu ku xiran yahay xaaladda gaarka ah.

Macnaha ISR

Qolka ISR wuxuu kuu oggolaanayaa inaad doorato dheelitirka ugu habboon ee u dhexeeya amniga xogta iyo daahitaanka. Tusaale ahaan, hubi in la heli karo haddii ay dhacdo guuldarada badi nuqullada, iyadoo la yareynayo saameynta nuqullada dhintay ama gaabiska ah marka la eego daahitaanka.

Anaga ayaa doorana macnaha replica.lag.time.max.ms hadba baahidaada. Asal ahaan, halbeeggani waxa uu ka dhigan yahay inta daahitaan ee aan diyaar u nahay in aan aqbalno marka acks=dhammaan. Qiimaha caadiga ah waa toban ilbiriqsi. Haddii ay tani kugu dheer tahay, waad yarayn kartaa. Markaas inta jeer ee isbeddelada ISR ayaa kordhin doona, maadaama kuwa raacsan laga saari doono oo lagu dari doono marar badan.

RabbitMQ si fudud waa muraayado u baahan in lagu celceliyo. Muraayadaha qunyar-socodka ah waxay soo bandhigaan daahitaan dheeri ah, muraayadaha dhintay waxay sugi karaan ilaa xirmooyinka hubinaya helitaanka nood kasta (calaamadaha saafiga ah) si ay uga jawaabaan. ISR waa hab xiiso leh oo looga fogaado arrimahan daahitaanka. Laakiin waxaan halis ugu jirnaa in aan lumino shaqo-ka-noqosho mar haddii ISR-du ay kaliya u yaraan karto hoggaamiyaha. Si looga fogaado khatartan, isticmaal goobta min.insync.replicas.

Dammaanadda xiriirka macmiilka

Dejinta bootstrap.servers soo saaraha iyo macaamiishu waxay cayimi karaan dilaaliinta badan ee isku xidhka macaamiisha. Fikradda ayaa ah in marka hal noodu hoos u dhaco, ay jiraan dhowr kuwa firaaqada ah oo ka tagay kuwaas oo macmiilku ku furi karo xiriir. Kuwaani qasab maaha hogaamiyayaasha qaybaha, laakiin si fudud waa boodhka rarka bilowga ah. Macmiilku waxa uu waydiin karaa dhuunta martigelinaysa akhriska/qorista hoggaamiyaha qaybta.

Gudaha RabbitMQ, macaamiishu waxay ku xidhi karaan nood kasta, iyo marin-u-socodka guduhu waxay u dirtaa codsiga halka ay u baahan tahay. Tani waxay ka dhigan tahay in aad ku rakibi karto dheelitirka culeyska hortiisa RabbitMQ. Kafka waxay u baahan tahay macaamiisha inay ku xidhmaan noodhka martigelinaya hogaamiyaha qaybta u dhigma. Xaaladdan oo kale, ma rakibi kartid miisaanka culeyska. Liiska bootstrap.servers Aad bay muhiim u tahay in macaamiishu galaan oo ay helaan qanjidhada saxda ah ka dib guuldarada.

Kafka Consensus Architecture

Ilaa hadda, kamay fikirin sida kooxdu u ogaato dhicitaanka dilaalka iyo sida hoggaamiye cusub loo doorto. Si aad u fahamto sida Kafka ula shaqeyso qaybaha shabakada, waxaad marka hore u baahan tahay inaad fahamto qaab dhismeedka la isku raacsan yahay.

Kutlad kasta oo Kafka ah ayaa la geeyay iyadoo ay weheliso koox Zookeeper, taas oo ah adeeg la isku raacsan yahay oo la qaybiyay taas oo u oggolaanaysa nidaamka in uu gaaro heshiis gobol la bixiyay, iyada oo mudnaanta siinaysa joogtaynta marka loo eego helitaanka. Oggolaanshaha inta badan qanjidhada Zookeeper ayaa looga baahan yahay inay ansixiyaan akhrinta iyo qorista.

Zookeeper waxay kaydisaa xaaladda kooxda:

  • Liiska mowduucyada, qaybaha, qaabeynta, nuqullada hoggaamiyaha hadda, nuqullada la doorbido.
  • Xubnaha kooxda Dallaal kastaa waxa uu ku dhuftaa kooxda Zookeeper. Haddii ay ku heli waydo ping-ka muddo cayiman gudaheed, markaas Zookeeper waxa ay diiwaan gelisaa dullaalku in aan la heli karin.
  • Doorashada qanjidhada muhiimka ah iyo kuwa firaaqada ah ee kantaroolaha.

Noodka kantarooluhu waa mid ka mid ah dilaaliinta Kafka ee mas'uul ka ah doorashada hoggaamiyeyaasha nuqul ka mid ah. Zookeeper wuxuu u soo diraa maamulaha ogeysiisyada ku saabsan xubinnimada kooxda iyo isbeddelada mowduuca, iyo maareeyaha waa inuu ku dhaqaaqaa isbeddeladan.

Tusaale ahaan, aynu soo qaadano mawduuc cusub oo toban qaybood u qaybsan yahay iyo qodobka soo noqnoqda oo ah 3. Koontarooluhu waa inuu doortaa hogaamiye qayb kasta, isagoo isku dayaya inuu si wanaagsan ugu qaybiyo hoggaamiyeyaasha dilaaliinta.

Maamule qayb kasta:

  • cusboonaysiinta macluumaadka Zookeeper ee ku saabsan ISR iyo hoggaamiyaha;
  • Wuxuu u diraa LeaderAndISRCommand dullaal kasta oo martigeliya nuqul ka mid ah qaybtan, isagoo u sheegaya dullaaliinta ISR iyo hoggaamiyaha.

Marka uu dilaal hogaamiye la dhaco, Zookeeper waxa ay u soo dirtaa ogeysiin maamulaha, oo ay doortaan hogaamiye cusub. Mar labaad, kontarooluhu wuxuu marka hore cusbooneysiiyaa Zookeeper ka dibna wuxuu u soo diraa amar dullaal kasta isagoo ogeysiinaya isbeddelka hoggaanka.

Hogaamiye kasta ayaa mas'uul ka ah qorista ISR-yada. Dejinta replica.lag.time.max.ms ayaa go'aaminaya cidda geli doonta. Marka ISR isbedelo, hogaamiyuhu wuxuu u gudbiyaa xog cusub Zookeeper.

Zookeeper had iyo jeer waa lala socodsiiyaa isbedel kasta si haddii ay dhacdo guuldarro, maamulku si habsami leh ugu guuro hoggaamiye cusub.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 21. Kafka Consensus

Baratakoolka soo celinta

Fahamka tafaasiisha ku-noqoshada waxay kaa caawinaysaa inaad si fiican u fahanto xaaladaha luminta xogta iman kara.

Weydiimaha muunadda, Gelida Dhammaadka Deminta (LEO) iyo Calaamadda Highwater (HW)

Waxaan u qaadanay in taageerayaashu ay si xilliyo ah u soo diraan codsiyo keenista hoggaamiyaha. Muddada u dhaxaysa waa 500ms. Tani waxay kaga duwan tahay RabbitMQ taas oo ah in RabbitMQ ku celcelinta aysan bilaabin muraayadda safka ee sayidku. Sayidku wuxuu ku riixaa isbeddellada muraayadaha.

Hogaamiyaha iyo dhammaan taageerayaasha waxay badbaadiyaan Log End Offset (LEO) iyo calaamadda Highwater (HW). Calaamadda LEO waxay ku kaydisaa kabka farriinta u dambaysa nuqulka maxalliga ah, HW-na waxay haysaa ka-goynta ballan-qaadkii u dambeeyay. Xusuusnow in heerka go'aan qaadashada, fariintu ay tahay in lagu sii wado dhamaan nuqulada ISR. Tani waxay ka dhigan tahay in LEO uu inta badan wax yar ka horeeyo HW.

Marka hoggaamiyuhu helo farriin, waxa ay ku kaydisaa gudaha. Dabadeystuhu wuxuu sameeyaa codsi soo jiidasho isagoo gudbinaya LEO-giisa. Hogaamiyuhu waxa uu soo diraa fariimo qayb ah oo ka bilaabmaya LEO-gan waxa kale oo uu gudbiyaa HW-da hadda jirta. Marka hoggaamiyuhu helo macluumaadka ku saabsan in dhammaan nuqullada ay ku kaydiyeen farriinta meesha la siiyay, waxay dhaqaajisaa calaamadda HW. Hogaamiyaha kaliya ayaa dhaqaajin kara HW, sidaas darteed dhammaan taageerayaashu waxay ogaan doonaan qiimaha hadda jira jawaabaha codsigooda. Tani waxay ka dhigan tahay in taageerayaashu ay ka dambayn karaan hogaamiyaha fariinta iyo aqoonta HW labadaba. Macaamiishu waxay helayaan fariimaha kaliya ilaa HW hadda jira.

Ogsoonow in "sii joogteyn" ay ka dhigan tahay in lagu qoro xusuusta, ee aan loo qorin saxanka. Waxqabadka, Kafka waxa ay la midaysaa saxanka wakhti gaar ah. RabbitMQ waxa kale oo uu leeyahay muddadan oo kale, laakiin waxay u diri doontaa qirasho daabacaha kaliya ka dib marka sayidku iyo dhammaan muraayadaha ay ku qoraan fariinta diskka. Horumarinta Kafka, sababaha waxqabadka awgeed, waxay go'aansadeen inay diraan ack isla marka fariinta lagu qoro xusuusta. Kafka waxay sharxaysaa in shaqo-joojintu ay ka hortagto khatarta ah in si kooban loogu kaydiyo fariimaha la qirsan yahay oo keliya xusuusta.

Guuldarada hogaamiye

Markuu hogaamiyuhu dhaco, Zookeeper waxa uu ogeysiiyaa maamulaha, oo waxa ay doorataa koobiga hogaamiyaha cusub. Hogaamiyaha cusub wuxuu dejiyaa calaamad cusub oo HW sida uu qabo LEO. Ka dib raacayaashu waxay helayaan macluumaadka ku saabsan hogaamiyaha cusub. Iyadoo ku xiran nooca Kafka, raacuhu wuxuu dooran doonaa mid ka mid ah labada xaaladood:

  1. Waxay u gooyn doontaa log-ga maxalliga ah HW la yaqaan waxayna u diri doontaa codsi fariimaha hoggaamiyaha cusub calaamaddan ka dib.
  2. Waxa uu codsi u diri doonaa hogaamiyaha si uu u ogaado HW markii loo doortay hogaamiyaha, ka dibna gooyay log in off this. Waxay markaa bilaabi doontaa samaynta codsiyada soo-dejinta xilliyeed ee ka bilaabmaya kabitaankan.

Dabadeystaha waxa laga yaabaa inuu u baahdo inuu gooyo qoraalka sababahan soo socda awgood:

  • Marka hoggaamiyuhu guul-darraysto, taageeraha ugu horreeya ee ISR-ga ee ka diiwaan gashan Zookeeper ayaa ku guulaysta doorashada oo noqda hoggaamiyaha. Dhammaan taageerayaasha ISR, inkasta oo loo tixgeliyey "in sync," waxaa laga yaabaa inaysan helin nuqullada dhammaan fariimaha hoggaamiyihii hore. Gebi ahaanba waa suurtogal in taageeraha la soo bandhigay aanu haysan nuqulkii ugu dambeeyay. Kafka waxay hubisaa inaysan jirin wax kala duwanaansho ah oo u dhexeeya nuqullada. Haddaba, si looga fogaado is-maandhaafka, taageere kastaa waa inuu gooyaa loggiisa qiimaha HW ee hoggaamiyaha cusub wakhtiga doorashada. Tani waa sabab kale oo loo dejiyo acks=dhammaan sidaas darteed muhiim u ah joogtaynta.
  • Fariimaha waxaa si xilliyo ah loogu qoraa saxanka. Haddii dhammaan qanjidhada kooxuhu ay isku mar fashilmaan, ka dibna nuqullada leh qaybo kala duwan ayaa lagu kaydin doonaa saxannada. Waxaa suurtogal ah in marka dilaaliinta ay dib ugu soo noqdaan khadka, hogaamiyaha cusub ee la doortay uu ka danbeeyo xertiisa sababtoo ah wuxuu ku badbaadiyay disk ka hor inta kale.

La midoobida kooxda

Marka ay dib ugu biiraan kooxda, koobabyadu waxay la mid yihiin marka hoggaamiyuhu guul-darraysto: waxay eegaan nuqulka hoggaamiyaha oo waxay gooyaan loggooda HW (waqtiga doorashada). Marka la barbardhigo, RabbitMQ waxay si isku mid ah ula dhaqantaa qanjidhada dib u midoobay sida gebi ahaanba cusub. Labada xaaladoodba, dilaalku wuxuu tuurayaa gobol kasta oo jira. Haddii isku-dubbarid toos ah la isticmaalo, markaa sayidku waa inuu gabi ahaanba dhammaan waxyaabaha hadda jira ku soo koobo muraayadda cusub ee habka "adduunka oo dhan ha sugaan". Sayidku ma aqbalo wax akhrin ama qoraal ah inta lagu jiro hawlgalkan. Habkani wuxuu dhibaato ku abuurayaa safafka waaweyn.

Kafka waa buug la qaybiyey, guud ahaanna waxa ay kaydisaa fariimo ka badan safka RabbitMQ, halkaas oo xogta laga saaro safka marka la akhriyo. Safafka firfircooni waa inuu ahaadaa mid yar. Laakin Kafka waa log leh siyaasad u gaar ah, kaas oo dejin kara muddo maalmo ama toddobaadyo ah. Xiritaanka safka iyo habka wada shaqaynta buuxda waa mid aan gabi ahaanba la aqbali karin log qaybsan. Taa baddalkeeda, taageerayaasha Kafka waxay si fudud u gooyaan loggooda HW hoggaamiyaha (waqtiga doorashada) haddii nuqulkoodu ka horeeyo hoggaamiyaha. Xaaladda ay u badan tahay, marka raacuhu ka dambeeyaan, waxay si fudud u bilaabataa samaynta codsiyo ka bilaabma LEO-geeda hadda.

Kuwa cusub ama ku soo biiray waxay ka bilowdaan meel ka baxsan ISR kamana qaybqaataan ballanqaadyada. Waxay si fudud ula shaqeeyaan kooxda, iyagoo helaya fariimaha sida ugu dhakhsaha badan ee ay awoodaan ilaa ay ka qabtaan hogaamiyaha oo ay galaan ISR. Ma jiro wax quful ah oo looma baahna in la tuuro dhammaan xogtaada.

Luminta isku xirnaanta

Kafka waxa ay leedahay qaybo ka badan RabbitMQ, marka waxa ay leedahay dabeecado aad u adag marka kooxdu ay go'do. Laakiin Kafka waxaa markii hore loogu talagalay kooxo, sidaas darteed xalalka si aad ah ayaa looga fikiray.

Hoos waxa ah dhawr xaaladood oo xidhiidh la'aan ah:

  • Dhacdada 1: raacuhu ma arko hogaamiyaha, laakiin wali wuxuu arkaa Zookeeper.
  • Muuqaalka 2: Hogaamiyuhu ma arko wax raacsan, laakiin wali wuxuu arkaa Zookeeper.
  • Dhacdada 3-aad: Daba-galuhu waxa uu arkaa hoggaamiyaha, laakiin ma arko Zookeeper.
  • Dhacdada 4: Hogaamiyuhu waxa uu arkaa kuwa raacsan, laakiin ma arko Zookeeper.
  • Dhacdada 5: Raacuhu gabi ahaanba wuu ka duwan yahay qanjidhada kale ee Kafka iyo Zookeeper.
  • Dhacdada 6: Hogaamiyuhu gabi ahaanba wuu ka duwan yahay qanjidhada kale ee Kafka iyo Zookeeper.
  • Dhacdada 7: Kantaroolaha Kafka ma arki karo noodhka kale ee Kafka.
  • Dhacdada 8: Kantaroolaha Kafka ma arko Zookeeper.

Xaalad kastaa waxay leedahay dabeecad u gaar ah.

Dhacdada 1: Raacuhu ma arko hogaamiyaha, laakiin wali wuxuu arkaa Zookeeper

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 22. Dhacdada 1: ISR ee saddex nuqul

Burburka isku xirnaanta ayaa kala saaraya dallaalka 3 iyo dallaaliyeyaasha 1 iyo 2, laakiin maaha mid ka soo jeeda Zookeeper. Dallaalka 3 mar dambe ma soo diri karo codsiyo soo jiidasho leh. Ka dib markii waqti la soo dhaafay replica.lag.time.max.ms waa laga saaray ISR oo kama qaybqaadato fariimaha gasha. Marka isku xirnaanta dib loo soo celiyo, waxay dib u bilaabi doontaa soo jiidashada codsiyada waxayna ku biiri doontaa ISR marka ay la kulanto hogaamiyaha. Zookeeper ayaa sii wadi doona helitaanka pings oo u qaadan doona in dallaalku nool yahay oo uu wanaagsan yahay.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 23. Dhacdada 1: Dallaalku waa laga saaraya ISR haddii aan wax codsi ah laga helin inta u dhaxaysa replica.lag.time.max.ms

Ma jiro wax ka joojinta maskaxda oo kala go'a sida RabbitMQ. Taa beddelkeeda, shaqo-joojintu waa la dhimay.

Muuqaalka 2: Hogaamiyaha ma arko wax raacsan, laakiin wali wuxuu arkaa Zookeeper

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 24. Muuqaal 2. Hogaamiye iyo laba taageere

Burbur ku yimi isku xidhka shabkada ayaa kala saara hogaamiyaha iyo kuwa raacsan, laakiin dilaalku wali wuu arki karaa Zookeeper. Sida dhacdadii ugu horreysay, ISR-gu wuu yaraanayaa, laakiin markan hoggaamiyaha oo keliya maadaama dhammaan taageerayaashu joojiyaan soo dirida codsiyada. Mar labaad, ma jirto qaybin macquul ah. Taa beddelkeeda, waxaa luminaya fariimaha cusub ee ku-noqoshada ilaa inta isku xirnaanta la soo celinayo. Zookeeper wuxuu sii wadaa inuu helo pings wuxuuna aaminsan yahay in dallaalku nool yahay oo uu wanaagsan yahay.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 25. Muuqaal 2. ISR waxa ay hoos ugu dhacday hoggaamiyaha oo keliya

Muuqaalka 3. Daba-galuhu waxa uu arkaa hoggaamiyaha, laakiin ma arko ilaaliye Zoobe

Daba-galku waa ka soocay Zookeeper, laakiin maaha mid ka soocay dallaalka hoggaamiyaha. Natiijo ahaan, raacuhu wuxuu sii wadaa inuu sameeyo codsiyo oo uu xubin ka noqdo ISR. Zookeeper mar dambe ma helo pings oo diiwaangeliya shil dilaal, laakiin maadaama ay tahay raace kaliya, ma jiraan wax cawaaqib ah ka dib soo kabashada.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 26. Dhacdada 3: Daba-galuhu waxa uu sii wadaa inuu u diro codsiyo soo jiidasho leh hoggaamiyaha

Muuqaalka 4. Hoggaamiyuhu wuxuu arkaa kuwa raacsan, laakiin ma arko Zookeeper

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 27. Muuqaal 4. Hogaamiye iyo laba taageere

Hogaamiyaha waa laga soocay Zookeeper, laakiin ma kala soocna dallaaliinta raacsan.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 28. Muuqaalka 4: Hogaamiye ka go'ay Zookeeper

Muddo ka dib, Zookeeper ayaa diiwaangelin doonta dallaal guuldarreysiga oo ogeysiin doona maamulaha arrintaas. Wuxuu xertiisa ka dhex dooran doonaa hoggaamiye cusub. Si kastaba ha noqotee, hogaamiyaha asalka ah wuxuu sii wadi doonaa inuu u maleeyo inuu yahay hogaamiyaha oo wuxuu sii wadi doonaa inuu aqbalo soo galitaanka acks=1. Taageerayaashu mar dambe uma soo diraan codsiyo soo jiidasho leh, sidaa darteed wuxuu u tixgelin doonaa inay dhinteen oo isku dayi inay iska yareeyaan ISR lafteeda. Laakiin maadaama aysan xiriir la lahayn Zookeeper, ma awoodi doonto inay tan sameyso, waxayna markaas diidi doontaa inay aqbasho wax kale oo dheeri ah.

farriimo acks=dhammaan ma heli doonto qirasho sababtoo ah ISR waxay marka hore daarataa dhammaan nuqullada, farriimahana ma gaaraan iyaga. Marka hogaamiyaha asalka ah uu isku dayo inuu ka saaro ISR, ma awoodi doonto inay sidaas sameyso oo waxay joojin doontaa aqbalaadda farriimaha kasta.

Macaamiishu waxay si dhakhso ah u ogaadaan isbeddelka hoggaamiyaha waxayna bilaabaan inay u diraan diiwaannada serverka cusub. Marka shabkada dib loo soo celiyo, hogaamiyihii asalka ahaa waxa uu arkaa in aanay hadda ahayn hogaamiye waxa uu googooyaa qiimihii HW ee hogaamiyaha cusubi lahaa wakhtigi fashilka si uu uga fogaado kala duwanaanshaha log. Kadib waxa ay bilaabi doontaa in ay codsiyo soo jiidasho u dirto hogaamiyaha cusub. Dhammaan diiwaannada laga helay hoggaamiyaha asalka ah ee aan lagu darin hoggaamiyaha cusub waa la luminayaa. Taas oo ah farriimaha uusan qiran hoggaamiyihii asalka ahaa dhowrka ilbiriqsi ee ay labada hoggaamiye shaqeynayeen ayaa la waayi doonaa.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 29. Muuqaalka 4. Hogaamiyaha dullaal 1 wuxuu noqonayaa taageere kadib markii shabakada dib loo soo celiyo

Dhacdada 5: Raacuhu gabi ahaanba wuu ka duwan yahay qanjidhada kale ee Kafka iyo Zookeeper

Dabadeystaha ayaa gabi ahaanba ka go'doonsan qanjidhada kale ee Kafka iyo Zookeeper. Isagu si fudud ayuu naftiisa uga saaraa ISR ilaa shabakaddu soo noqoto, ka dibna la qabsado kuwa kale.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 30. Dhacdada 5: Raacayaasha goonida ah ayaa laga saaray ISR

Dhacdada 6: Hogaamiyuhu gabi ahaanba wuu ka duwan yahay qanjidhada kale ee Kafka iyo Zookeeper

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 31. Muuqaal 6. Hogaamiye iyo laba taageere

Hogaamiyaha ayaa gabi ahaan ka go'doon xertiisa, maamulaha iyo Zookeeper. Muddo gaaban waxay sii wadi doontaa in laga aqbalo galitaanka acks=1.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 32. Muuqaalka 6: Ka go'doominta hogaamiyaha iyo qanjidhada kale ee Kafka iyo Zookeeper

Iyadoo aan la helin codsiyo ka dib dhicitaanka replica.lag.time.max.ms, waxay isku dayi doontaa in ay hoos u dhigto ISR lafteeda, laakiin ma awoodi doonto inay sidaas sameyso sababtoo ah ma jiro xiriir la leh Zookeeper, ka dibna waxay joojin doontaa aqbalaadda qoraallada.

Dhanka kale, Zookeeper ayaa ku calaamadin doona dillaalkii go’doonsanaa inuu dhintay, koontaroolaha ayaana dooran doona hoggaamiye cusub.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 33.Scenario 6.Laba hogaamiye

Hogaamiyaha asalka ah waxaa laga yaabaa inuu aqbalo gelitaannada dhowr ilbiriqsi, laakiin ka dib wuxuu joojinayaa aqbalaadda farriimaha kasta. Macaamiisha waxaa la cusboonaysiiyaa 60-kii ilbiriqsi kasta iyadoo la raacayo xogtii ugu dambeysay. Waxaa lagu wargelin doonaa isbeddelka hoggaamiyaha waxayna bilaabi doonaan u dirida qoraallada hoggaamiyaha cusub.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 34. Dhacdada 6: Warshadeeyayaashu waxay u beddelaan hoggaamiye cusub

Dhammaan gelitaannada la xaqiijiyay ee uu sameeyay hoggaamiyaha asalka ah tan iyo markii ay lumisay isku xirnaanta waa la lumin doonaa. Marka shabakada dib loo soo celiyo, hogaamiyaha asalka ah wuxuu ku ogaan doonaa Zookeeper in uusan hadda ahayn hogaamiyaha. Kadibna waxay gooyn doontaa qoraalkeeda HW ee hogaamiyaha cusub wakhtiga doorashada waxayna bilaabi doontaa soo dirida codsiyada taageere ahaan.

RabbitMQ vs Kafka: Dulqaadka Ciladda iyo Helitaanka Sare
Bariis 35. Dhacdada 6: Hogaamiyihii asalka ahaa wuxuu noqdaa raace ka dib markii isku xirka shabakada dib loo soo celiyo

Xaaladdan oo kale, kala-saar macquul ah ayaa dhici karta muddo gaaban, laakiin waa haddii kaliya acks=1 ΠΈ min.insync.replicas sidoo kale 1. Kala saarida macquulka ah waxay si toos ah u dhamaanaysaa ka dib marka shabakada dib loo soo celiyo, marka hogaamiyihii asalka ahaa uu ogaado inuusan hadda ahayn hogaamiyaha, ama marka dhammaan macaamiisha ay ogaadaan in hoggaamiyuhu isbeddelay oo ay bilaabaan inay qoraan hoggaamiyaha cusub - mid kasta oo dhaca marka hore. Si kastaba ha ahaatee, fariimaha qaarkood waa la lumin doonaa, laakiin kaliya la acks=1.

Waxaa jira kala duwanaansho kale oo ka mid ah dhacdadan, ka hor intaanay shabakaddu kala go'in, taageerayaashu dib u dhaceen oo hoggaamiyuhu uu ku cadaadiyo ISR naftiisa. Kadibna waxay noqotaa go'doon sababtoo ah luminta isku xirnaanta. Hogaamiye cusub ayaa la doortaa, laakiin hogaamiyihii asalka ahaa wuxuu sii wadaa inuu aqbalo galitaanka, xitaa acks=dhammaan, sababtoo ah ma jiro qof kale oo ISR ah isaga mooyee. Diiwaanadaan waa la lumin doonaa marka shabakada dib loo soo celiyo. Sida kaliya ee looga badbaadi karo doorashadan waa min.insync.replicas = 2.

Dhacdada 7: Kantaroolaha Kafka ma arki karo Node kale oo Kafka ah

Guud ahaan, mar haddii xiriirka qanjirada Kafka uu lumo, koontarooluhu ma awoodi doono inuu u gudbiyo hoggaamiye kasta oo beddela macluumaadka. Xaaladda ugu xun, tani waxay horseedi doontaa kala-bax macquul ah oo gaaban, sida dhacdada 6. Inta badan, dallaalku si fudud uma noqon doono musharaxa hoggaanka haddii kan dambe uu ku guuldareysto.

Dhacdada 8: Kantaroolaha Kafka ma arko Zookeeper

Zookeeper kama heli doono ping kontaroolaha dhacay wuxuuna dooran doonaa noode Kafka cusub kantaroolaha. Kantaroolaha asalka ahi wuu sii wadi karaa inuu isa soo bandhigo, laakiin kama helo ogeysiisyada Zookeeper, markaa ma yeelan doonto wax hawlo ah oo ay qabato. Marka shabakada dib loo soo celiyo, wuxuu ogaan doonaa inuusan hadda ahayn kantaroole, laakiin wuxuu noqday noodhka Kafka caadiga ah.

Gabagabada laga soo bilaabo muuqaalada

Waxaan aragnaa in luminta isku xirnaanta taageerayaashu aysan keenin luminta farriinta, laakiin si ku-meel-gaar ah u yareyso shaqo-joojinta illaa shabakadda dib loo soo celiyo. Tani, dabcan, waxay u horseedi kartaa luminta xogta haddii hal ama ka badan ay lumaan.

Hadii hogamiyaha uu kala go’o isku xirnaanta Zookeeper awgeed, tani waxay keeni kartaa in fariimaha laga waayo acks=1. Xiriir la'aanta Zookeeper waxay sababtaa kala qaybsanaan kooban oo macquul ah oo ka dhexeeya labada hoggaamiye. Dhibaatadan waxaa lagu xalliyaa halbeegga acks=dhammaan.

Xildhibaan min.insync.replicas Laba nuqul ama in ka badan oo nuqul ah waxay ku siinaysaa dammaanad dheeraad ah in xaaladaha muddada-gaaban aysan keeni doonin farriimaha lumay sida sawirka 6.

Soo koobida fariimaha lumay

Aynu taxno dhammaan siyaabaha aad ku waayi karto xogta gudaha Kafka:

  • Hogaamiye kasta oo guul daraystay haddii fariimaha la xaqiijiyay la isticmaalayo acks=1
  • Kala-guurka kasta oo aan nadiif ahayn oo hoggaamineed, taas oo ah, raace ka baxsan ISR, xitaa leh acks=dhammaan
  • Ka go'doominta horjoogaha Zookeeper haddii fariimaha la xaqiijiyo isticmaalka acks=1
  • Go'doomin buuxda oo hoggaamiyaha kaas oo mar hore hoos u dhigay kooxda ISR. Dhammaan fariimaha waa la lumin doonaa, xitaa acks=dhammaan. Tani waa run kaliya haddii min.insync.replicas=1.
  • Guuldarrooyinka isku mar ah ee dhammaan qanjidhada qaybinta. Sababtoo ah farriimaha waxaa laga aqoonsan yahay xusuusta, qaarkood waxaa laga yaabaa inaan weli lagu qorin saxanka. Kadib dib-u-kicinta server-yada, fariimaha qaar ayaa laga yaabaa inay maqan yihiin.

Kala-guurka hoggaaminta ee aan nadiifka ahayn waxaa lagaga badbaadi karaa in la mamnuuco ama la hubiyo ugu yaraan laba xil-ka-saarid. Qaabaynta ugu waarta waa isku-dar acks=dhammaan ΠΈ min.insync.replicas ka badan 1.

Isbarbardhigga tooska ah ee isku halaynta RabbitMQ iyo Kafka

Si loo hubiyo in la isku halleyn karo iyo helitaan sare, labada gooboodba waxay hirgeliyaan nidaamka taranka ee aasaasiga ah iyo kan sare. Si kastaba ha ahaatee, RabbitMQ waxay leedahay ciribta Achilles. Marka dib loo xidho ka dib guuldarada, noodhadhku way tuurayaan xogtooda oo wada shaqaynta waa la xannibaa. Marxaladan laba-jibbaaran waxay su'aal gelinaysaa cimriga dheer ee safafka waaweyn ee RabbitMQ. Waa inaad aqbashaa shaqo dhimis ama waqti dheer oo xannibaad ah. Yaraynta dib-u-celinta waxay kordhisaa khatarta luminta xogta weyn. Laakiin haddii safafku yar yahay, ka dib dib-u-celinta awgeed, waqtiyo gaaban oo aan la heli karin (dhowr ilbiriqsi) ayaa lagu xallin karaa iyadoo la adeegsanayo isku dayo xiriir oo soo noqnoqda.

Kafka dhibkan ma haysto. Waxa ay meesha ka saaraysaa xogta oo keliya meesha ay ku kala duwan yihiin hoggaamiyaha iyo raacaha. Dhammaan xogta la wadaago waa la keydiyay Intaa waxaa dheer, ku celcelintu ma xannibayso nidaamka. Hogaamiyuhu waxa uu sii wadaa in uu aqbalo jagooyinka inta uu taageeraha cusubi qabsanayo, sidaa awgeed ku biirida ama ku biirista kooxdu waxa ay noqotaa hawl yar. Dabcan, weli waxaa jira arrimo ay ka mid yihiin xawaaraha isku-xidhka inta lagu guda jiro soo-celinta. Haddii aad isku mar ku darto taageereyaal badan, waxa laga yaabaa inaad la kulanto xadka xadka.

RabbitMQ wuu ka sarreeyaa Kafka isku hallaynta marka adeegayaal badan oo kutlada ku jira ay isku mar fashilmaan. Sidii aan horeyba u sheegnay, RabbitMQ waxay soo dirtaa xaqiijinta daabacaha kaliya ka dib marka farriinta lagu qoro diskka Masterka iyo dhammaan muraayadaha. Laakiin tani waxay ku dartay daahitaan dheeri ah laba sababood dartood:

  • fsync dhowrkii milyan ee ilbiriqsi kasta
  • Guuldarada muraayada waxaa la ogaan karaa oo kaliya ka dib inta ay nool yihiin xirmooyinka hubinaya helitaanka noode kasta (calaamadaha saafiga ah) ayaa dhacay. Haddii muraayadu hoos u dhacdo ama hoos u dhacdo, tani waxay kordhinaysaa dib u dhac.

Qatka Kafka ayaa ah in haddii fariinta lagu kaydiyo meelo badan, waxay aqoonsan kartaa fariimaha isla marka ay ku dhacaan xusuusta. Sababtaas awgeed, waxaa jirta khatar ah in la lumiyo farriimaha nooc kasta ah (xitaa acks=dhammaan, min.insync.replicas=2) haddii ay dhacdo guuldarro isku mar ah.

Guud ahaan, Kafka waxay soo bandhigtaa waxqabadka software ka wanaagsan waxaana loo nashqadeeyay laga bilaabo salka ilaa kooxo. Tirada taageerayaasha waa la kordhin karaa ilaa 11 haddii loo baahdo in la isku halleyn karo. Qodobka 5-aad ee soo-noqoshada iyo tirada ugu yar ee nuqul ka mid ah isku-dubarid min.insync.replicas=3 waxay ka dhigi doontaa luminta fariinta dhacdo aad dhif u ah. Haddii kaabayaashaagu ay taageeri karaan saamigan ku-noqoshada iyo heerka shaqo-ka-reebista, markaa waxaad dooran kartaa doorashadan.

Ururinta RabbitMQ waxay u fiican tahay safafka yar yar. Laakin xitaa safafka yar yar si dhaqsi ah ayuu u kori karaa marka gaadiid badan jiro. Marka safafku weynaado, waa inaad samaysaa doorashooyin adag oo u dhexeeya helitaanka iyo isku halaynta. Kutlada RabbitMQ waxay ku habboon tahay xaaladaha aan caadiga ahayn halkaasoo faa'iidooyinka dabacsanaanta RabbitMQ ay ka miisaan badan tahay khasaarooyinka ururinteeda.

Hal ka hortag u nuglaanta RabbitMQ ee safafka waaweyn waa in loo kala jebiyo safaf yar yar oo badan. Haddii aadan u baahnayn in si buuxda loo dalbado safka oo dhan, laakiin kaliya farriimaha khuseeya (tusaale ahaan, fariimaha macmiilka gaarka ah), ama aanad waxba ka dalban, markaa doorashadan waa mid la aqbali karo: fiiri mashruucayga. Dib-u-habayn si loo kala qaybiyo safka (mashruucu wali wuxuu ku jiraa marxalad hore).

Ugu dambayntii, ha iloobin tiro kutaanno ah oo ku jira habka ururinta iyo soo-celinta ee RabbitMQ iyo Kafka labadaba. Muddo ka dib, nidaamyadu waxay noqdeen kuwo qaan-gaar ah oo deggan, laakiin farriintu weligeed 100% ka badbaadi mayso khasaaraha ma jirto! Intaa waxaa dheer, shilal waaweyn ayaa ka dhaca xarumaha xogta!

Haddii aan wax seegay, khalad sameeyay, ama aad ku raacsan tahay mid ka mid ah qodobbada, xor u noqo inaad faallo qorto ama ila soo xidhiidh.

Inta badan waxaa la i weydiiyaa: "Maxaa la doortaa, Kafka ama RabbitMQ?", "Madalkee ka wanaagsan?". Runtu waxa ay tahay in ay dhab ahaantii ku xidhan tahay xaaladaada, waayo-aragnimadaada hadda, iwm Waxaan maqaalladan taxanaha ah u qoray si aad fikradaada u samaysato.

Waxaan rabaa in aan sheego in labada nidaamba ay yihiin hoggaamiyeyaasha aaggan. Waxa laga yaabaa in aan yara eexdo sababtoo ah waayo-aragnimadayda mashaariicda waxaan u muuqdaa in aan qiimeeyo waxyaabaha ay ka midka yihiin fariimaha la dammaanad qaaday iyo kalsoonida.

Waxaan arkaa tignoolajiyada kale ee ka maqan kalsoonidan iyo dalbashada dammaanadda leh, ka dib waxaan eegaa RabbitMQ iyo Kafka oo aan garwaaqsado qiimaha cajiibka ah ee labadan nidaam.

Source: www.habr.com

Add a comment