Ma aha oo kaliya habaynta: Sida aan u samaynay xog-ururin la qaybiyey Kafka Streams, iyo waxa ka yimid

Haye Habr!

Waxaan ku xasuusinaynaa in daba-galka buugga ku saabsan Kafka Waxaan daabacnay shaqo xiiso leh oo isku mid ah oo ku saabsan maktabadda Kafka Streams API.

Ma aha oo kaliya habaynta: Sida aan u samaynay xog-ururin la qaybiyey Kafka Streams, iyo waxa ka yimid

Hadda, bulshadu waxay baranaysaa xadka qalabkan xoogga badan. Haddaba, dhawaan ayaa maqaal la daabacay, kaas oo tarjumaaddiisa aan jecelnahay in aan idin baro. Laga soo bilaabo waayo-aragnimadiisa, qoraagu wuxuu sheegayaa sida loo rogo Kafka Streams kaydinta xogta qaybsan. Ku raaxayso akhriska!

Apache maktabadda Kafka durdurrada dunida oo dhan looga isticmaalo shirkadaha si loogu habeeyo socodka qulqulka ee dusha sare ee Apache Kafka. Mid ka mid ah dhinacyada aan la mahadin ee qaabkan ayaa ah in ay kuu ogolaato inaad kaydiso dawlad-goboleedka maxaliga ah ee la soo saaray ee ku salaysan habaynta dunta.

Maqaalkan, waxaan kuu sheegi doonaa sida shirkadeena ay ugu suurtagashay inay si faa'iido leh u isticmaasho fursadan marka ay horumarinayso badeecad loogu talagalay amniga codsiga daruuriga. Isticmaalka Kafka Streams, waxaanu abuurnay adeeg-yar oo dawladeed oo la wadaago, kuwaas oo mid kastaa u adeego sida cillad-dulqaadka iyo ilaha aadka loo heli karo ee macluumaadka lagu kalsoonaan karo ee ku saabsan xaaladda walxaha nidaamka. Annaga, tani waa tallaabo hore loo qaaday labadaba marka la eego isku halaynta iyo fududaynta taageerada.

Haddii aad xiisaynayso habab kale oo kuu oggolaanaya inaad isticmaasho hal xog-ururin dhexe si aad u taageerto xaaladda rasmiga ah ee walxahaaga, akhri, waxay noqon doontaa mid xiiso leh...

Waa maxay sababta aan u maleynay in la gaaray waqtigii wax laga bedeli lahaa habka aan ula shaqeyno dowlad-goboleedka la wadaago

Waxaan u baahanahay inaan ilaalino xaaladda walxaha kala duwan ee ku saleysan warbixinnada wakiilka (tusaale: goobta la weeraray)? Kahor intaadan u haajirin Kafka Streams, waxaanu inta badan ku tiirsanay hal xog ururin dhexe (+ adeega API) ee maamulka gobolka. Habkani wuxuu leeyahay cilladihiisa: taariikhda xaaladaha degdega ah joogteynta joogtaynta iyo wada shaqayntu waxay noqotaa caqabad dhab ah. Xogta xogta ayaa laga yaabaa inay noqoto cilad ama waxay ku dhamaan kartaa xaalad jinsiyadeed oo aan la saadaalin karin.

Ma aha oo kaliya habaynta: Sida aan u samaynay xog-ururin la qaybiyey Kafka Streams, iyo waxa ka yimid

Jaantuska 1: Xaalad caadi ah oo kala qaybsanaan ah oo la arkay ka hor inta aan loo gudbin
Kafka iyo Kafka durdurrada: wakiillada waxay ku gudbiyaan aragtidooda API, gobolka la cusboonaysiiyay waxaa lagu xisaabiyaa kaydka dhexe

La kulan Kafka Streams, taasoo sahlaysa in la abuuro adeeg-yar oo dawladeed oo la wadaago

Qiyaastii hal sano ka hor, waxaan go'aansanay inaan si adag u eegno xaaladaha dowlad-goboleedka ee aan wadaagno si aan arrimahan wax uga qabanno. Waxaan isla markiiba go'aansanay inaan tijaabino Kafka durdurrada - waan ognahay sida loo miisaaman karo, aadka loo heli karo iyo cilladda loo dulqaadan karo, maxay tahay shaqeynta qulqulka qani ah ee ay leedahay (isbeddellada, oo ay ku jiraan kuwa dawladeed). Kaliya waxa aan u baahanahay, ma aha in la xuso sida qaan-gaarnimada iyo kalsoonida nidaamka fariimaha uu ka noqday Kafka.

Mid kasta oo ka mid ah adeegyada yar yar ee aan abuurnay waxaa lagu dhisay dusha sare ee Kafka Streams tusaale ahaan dusha sare ee cadaalad ah. Waxay ka koobnayd 1) Isha 2) Processor leh bakhaar qiimo leh oo joogto ah 3) saxan:

Ma aha oo kaliya habaynta: Sida aan u samaynay xog-ururin la qaybiyey Kafka Streams, iyo waxa ka yimid

Jaantuska 2: Qaabka ugu habboon ee tusaalayaashayada qulqulka ah ee adeegyada yar yar ee dawladaysan. Ogsoonow in ay sidoo kale jirto meel kayd ah oo ka kooban xogta badan ee qorshaynta.

Habkan cusub, wakiiladu waxay qoraan farriimaha lagu quudiyo mawduuca isha, iyo macaamiisha - waxay yiraahdaan, adeegga ogeysiinta boostada - waxay helayaan gobolka la wadaago ee la xisaabiyay iyada oo loo marayo saxanka (mawduuca wax soo saarka).

Ma aha oo kaliya habaynta: Sida aan u samaynay xog-ururin la qaybiyey Kafka Streams, iyo waxa ka yimid

Jaantus 3: Socod hawleedka cusub ee tusaalaha ah ee xaalad leh adeegyo yar yar oo la wadaago: 1) wakiilku waxa uu abuuraa fariin ku imanaysa mawduuca isha Kafka; 2) adeeg-yar oo leh dawlad la wadaago (adoo isticmaalaya Kafka Streams) ayaa ka baaraandegta oo u qorta gobolka la xisaabiyay mawduuca ugu dambeeya ee Kafka; ka dib 3) macaamiishu waxay aqbalaan gobolka cusub

Haye, dukaankan qiimaha leh ee lagu dhex dhisay runtii aad buu faa'iido u leeyahay!

Sida kor ku xusan, topology-ga gobolka ee aynu wadaagno waxa uu ka kooban yahay dukaan qiimo leh. Waxaan helnay dhowr ikhtiyaar oo loo isticmaali karo, iyo laba ka mid ah ayaa lagu sharaxay hoos.

Xulashada #1: Isticmaal dukaanka qiimaha muhiimka ah xisaabinta

Bakhaarkeenii ugu horreeyay ee qiimaha-muhiimka ahaa waxa ka koobnaa xogta caawimada ah ee aanu ugu baahanahay xisaabinta. Tusaale ahaan, xaaladaha qaarkood gobolka la wadaago waxaa lagu go'aamiyay mabda'a "codadka aqlabiyadda". Kaydka ayaa hayn kara dhammaan warbixinihii ugu dambeeyay ee wakiilka ee xaaladda shay. Kadib, markii aan helnay warbixin cusub oo ka timid hal wakiil ama mid kale, waan badbaadin karnaa, ka soo ceshano warbixinnada dhammaan wakiilada kale ee ku saabsan xaaladda shay isku mid ah kaydinta, oo ku celi xisaabinta.
Jaantuska 4-aad ee hoose wuxuu muujinayaa sida aan u soo bandhignay bakhaarka furaha/qiimaha habka processor-ka si fariinta cusub loo habeeyo.

Ma aha oo kaliya habaynta: Sida aan u samaynay xog-ururin la qaybiyey Kafka Streams, iyo waxa ka yimid

Sawirka 4: Waxaan furaynaa gelitaanka bakhaarka qiimaha muhiimka ah ee habka habaynta processor-ka (intaan ka dib, qoraal kasta oo la shaqeeya gobolka la wadaago waa inuu hirgeliyaa habka doProcess)

Xulashada #2: Abuuritaanka API CRUD korka Kafka Streams

Ka dib markii aanu aasaasnay ​​socodka hawshayada aasaasiga ah, waxaan bilownay inaan isku dayno inaan u qorno RESTful CRUD API ee adeegyadayada yar yar ee gobolka ee la wadaago. Waxaan rabnay inaan awoodno inaan dib u soo ceshano xaaladda qaar ama dhammaan walxaha, iyo sidoo kale dejin ama ka saarno xaaladda shay (waxtar u leh taageerada dhabarka).

Si loo taageero dhammaan Hel Gobolka APIs, mar kasta oo aan u baahannahay inaan dib u xisaabinno gobolka inta lagu jiro habaynta, waxaan ku kaydinnay bakhaar ku dhex-yaalla qiimaha muhiimka ah muddo dheer. Xaaladdan oo kale, waxay noqonaysaa mid fudud in la hirgeliyo API-gaas oo kale iyadoo la adeegsanayo hal tusaale oo Kafka Streams ah, sida ka muuqata liiska hoose:

Ma aha oo kaliya habaynta: Sida aan u samaynay xog-ururin la qaybiyey Kafka Streams, iyo waxa ka yimid

Jaantuska 5: Isticmaalka ku dhex dhisan bakhaarka qiimaha muhiimka ah si aad u hesho xaaladda shay ee la sii xisaabiyay

Cusbooneysiinta xaaladda shay iyada oo loo sii marayo API sidoo kale waa sahlan tahay in la hirgeliyo. Asal ahaan, dhammaan waxaad u baahan tahay inaad sameyso waa abuurista soo saaraha Kafka oo aad u isticmaasho si aad u sameyso rikoor ka kooban gobolka cusub. Tani waxay hubinaysaa in dhammaan fariimaha laga soo saaro API-ga loo habayn doono si la mid ah kuwa laga helo soosaarayaasha kale (tusaale wakiillada).

Ma aha oo kaliya habaynta: Sida aan u samaynay xog-ururin la qaybiyey Kafka Streams, iyo waxa ka yimid

Jaantuska 6: Waxaad dejin kartaa xaaladda shay adoo isticmaalaya soo saaraha Kafka

Dhibaato yar: Kafka waxay leedahay qaybo badan

Marka xigta, waxaanu rabnay inaanu qaybino culayska habaynta oo aanu wanaajino helitaanka annagoo bixinayna koox adeeg-yar oo dawladeed oo la wadaago xaalad kasta. Dejintu waxay ahayd neecaw: mar aanu habbaynay dhammaan xaaladaha si ay ugu hoos socdaan aqoonsiga codsiga (iyo isla bootstrap servers), ku dhawaad ​​wax kasta oo kale ayaa si toos ah loo sameeyay. Waxaan sidoo kale qeexnay in mawduuc kasta oo isha ah uu ka koobnaan doono dhawr qaybood, si tusaale kasta loo qoondeeyo qayb-hoosaadyadaas.

Waxaan sidoo kale sheegi doonaa in ay tahay wax caadi ah in la sameeyo nuqul ka mid ah dukaanka gobolka si, tusaale ahaan, haddii ay dhacdo soo kabashada ka dib fashilka, u wareeji nuqulkan tusaale kale. Bakhaar kasta oo dawladeed oo ku yaal Kafka Streams, mawduuc la soo koobay ayaa lagu abuuraa diiwaanka isbeddelka (kaas oo la socda wararka deegaanka). Sidaa darteed, Kafka waxay si joogto ah u taageertaa dukaanka gobolka. Sidaa darteed, haddii ay dhacdo mid ka mid ah ama mid kale oo Kafka Streams tusaale ahaan, dukaanka gobolka si degdeg ah ayaa loo soo celin karaa tusaale kale, halkaas oo qaybaha u dhigma ay tagi doonaan. Tijaabooyinkeennu waxay muujiyeen in tan lagu sameeyo ilbiriqsiyo gudahood, xitaa haddii ay jiraan malaayiin rikoor ah oo dukaanka ku jira.

Ka guurista hal adeeg-yar oo leh gobol la wadaago una guurto koox adeeg-yar oo adeeg-yar, waxay noqonaysaa wax aan fududayn in la hirgeliyo Get State API. Xaaladda cusub, bakhaarka gobolka ee adeeg kasta oo yar yar wuxuu ka kooban yahay qayb ka mid ah sawirka guud (walxaha furayaasha lagu sawiray qayb gaar ah). Waxay ahayd inaan go'aansanno tusaalaha ka kooban xaaladda shayga aan u baahanahay, waxaanan sameynay tan iyadoo ku saleysan xogta badan ee dunta, sida hoos ku cad:

Ma aha oo kaliya habaynta: Sida aan u samaynay xog-ururin la qaybiyey Kafka Streams, iyo waxa ka yimid

Jaantuska 7: Isticmaalka xogta badan ee durdurrada, waxaanu go'aaminaynaa tusaale ahaan si loo waydiiyo xaaladda shayga la rabo; hab la mid ah ayaa loo adeegsaday GET ALL API

Natiijooyinka ugu muhiimsan

Dukaamada gobolka ee Kafka Streams waxay u adeegi karaan xog sugan oo la qaybiyey,

  • si joogto ah loogu celceliyay Kafka
  • API CRUD si fudud ayaa loogu dhisi karaa dusha nidaamkan
  • Qabashada qaybo badan ayaa ka sii dhib badan
  • Waxa kale oo suurtagal ah in lagu daro hal ama in ka badan oo dukaamada gobolka ah topology-ga qulqulka si loo kaydiyo xogta kaalmada. Doorashadan waxaa loo isticmaali karaa:
  • Kaydinta muddada-dheer ee xogta looga baahan yahay xisaabinta inta lagu jiro habaynta socodka
  • Kaydinta muddada-dheer ee xogta oo laga yaabo inay faa'iido leedahay marka xigta ee tusaalaha qulqulka la bixiyo
  • ka badan...

Faa'iidooyinkan iyo kuwa kale ayaa ka dhigaya qulqulka Kafka si fiican ugu habboon ilaalinta dawladnimada caalamiga ah ee nidaamka qaybsan sida kuweena oo kale ah. Kafka Streams waxa ay caddeeyeen in ay yihiin kuwo la isku hallayn karo xagga wax-soo-saarka (Dhammaan kamaanu helin wax farriin ah tan iyo markii la diray), waxaanan ku kalsoonnahay in aanay awooddeedu halkaas ku joogsan doonin!

Source: www.habr.com

Add a comment