Haye Habr!
Waxaan ku xasuusinaynaa in daba-galka buugga ku saabsan
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
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:
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:
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).
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.
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:
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).
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:
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