Sveiki visiem!
Es sÄku tulkot mazu grÄmatu:
Ā«
autors: Jakubs Korabs, izdevÄjs: O'Reilly Media, Inc., publicÄÅ”anas datums: 2017. gada jÅ«nijs, ISBN: 9781492049296.
No grÄmatas ievada:
"... Å Ä« grÄmata iemÄcÄ«s jums domÄt par brokeru ziÅojumapmaiÅas sistÄmÄm, salÄ«dzinot divas populÄras brokeru tehnoloÄ£ijas: Apache ActiveMQ un Apache Kafka. TajÄ tiks izklÄstÄ«ti lietoÅ”anas gadÄ«jumi un izstrÄdes stimuli, kas lika izstrÄdÄtÄjiem izmantot ļoti dažÄdas pieejas vienai un tai paÅ”ai jomai ā ziÅojumapmaiÅai starp sistÄmÄm ar starpposma starpnieku. MÄs aplÅ«kosim Ŕīs tehnoloÄ£ijas no paÅ”a sÄkuma un uzsvÄrsim dažÄdu dizaina izvÄļu ietekmi. JÅ«s iegÅ«sit dziļu izpratni par abiem produktiem, izpratni par to, kÄ tos vajadzÄtu un nevajadzÄtu lietot, un sapratni par to, kas jÄÅem vÄrÄ, apsverot citas ziÅojumapmaiÅas tehnoloÄ£ijas nÄkotnÄ. ... "
LÄ«dz Å”im tulkotÄs daļas:
PabeigtÄs nodaļas ievietoÅ”u, tiklÄ«dz tÄs ir tulkotas.
1. NODAĻA
Ievads
ZiÅojumapmaiÅa no sistÄmas uz sistÄmu ir viena no vismazÄk saprotamajÄm IT jomÄm. KÄ izstrÄdÄtÄjs vai arhitekts jÅ«s, iespÄjams, ļoti labi pÄrzinÄt dažÄdas sistÄmas un datu bÄzes. TomÄr ir iespÄjams, ka jÅ«s tikai Ä«slaicÄ«gi zinÄt, kÄ darbojas uz brokeriem balstÄ«tas ziÅojumapmaiÅas tehnoloÄ£ijas. Ja jÅ«taties Å”Ädi, neuztraucieties, jÅ«s esat labÄ kompÄnijÄ.
CilvÄkiem parasti ir ļoti ierobežots kontakts ar ziÅojumapmaiÅas infrastruktÅ«ru. ViÅi bieži pieslÄdzas sistÄmai, kas izveidota jau sen, vai lejupielÄdÄ no interneta izplatÄ«Å”anu, instalÄ to PROM un sÄk rakstÄ«t tai kodu. PÄc infrastruktÅ«ras palaiÅ”anas PROM, rezultÄti var bÅ«t dažÄdi: ziÅojumi tiek pazaudÄti kļūmju dÄļ, sÅ«tÄ«Å”ana nedarbojas, kÄ jÅ«s gaidÄ«jÄt, vai arÄ« brokeri āapÄakarÄā jÅ«su ražotÄjus vai nenosÅ«ta ziÅojumus jÅ«su patÄrÄtÄjiem.
IzklausÄs pazÄ«stami?
IzplatÄ«ts scenÄrijs ir tÄds, ka jÅ«su ziÅojumapmaiÅas kods pagaidÄm darbojas lieliski. LÄ«dz pÄrstÄj darboties. Å is periods iemidzina sargu maldÄ«gÄ droŔības sajÅ«tÄ, radot vairÄk koda, kas balstÄs uz maldÄ«giem uzskatiem par tehnoloÄ£ijas pamatuzvedÄ«bu. Kad lietas sÄk iet greizi, jÅ«s saskaraties ar neÄrtu patiesÄ«bu: ka neesat Ä«sti sapratis produkta uzvedÄ«bu vai autoru izvÄlÄtos kompromisus, piemÄram, veiktspÄju pret uzticamÄ«bu vai darÄ«jumu spÄju pret horizontÄlo mÄrogojamÄ«bu. .
Bez dziļas izpratnes par to, kÄ darbojas brokeri, cilvÄki sniedz Ŕķietami pamatotus paziÅojumus par savÄm ziÅojumapmaiÅas sistÄmÄm, piemÄram:
- SistÄma nekad nezaudÄs ziÅojumus
- ZiÅojumi tiks apstrÄdÄti secÄ«gi
- PatÄrÄtÄju pievienoÅ”ana padarÄ«s sistÄmu ÄtrÄku
- ZiÅojumi tiks piegÄdÄti tikai vienu reizi
DiemžÄl daži no Å”iem apgalvojumiem ir balstÄ«ti uz pieÅÄmumiem, kas ir spÄkÄ tikai noteiktos apstÄkļos, bet citi ir vienkÄrÅ”i nepareizi.
Å Ä« grÄmata iemÄcÄ«s domÄt par uz brokeriem balstÄ«tÄm ziÅojumapmaiÅas sistÄmÄm, salÄ«dzinot divas populÄras brokeru tehnoloÄ£ijas: Apache ActiveMQ un Apache Kafka. TajÄ tiks izklÄstÄ«ti lietoÅ”anas gadÄ«jumi un izstrÄdes stimuli, kas lika izstrÄdÄtÄjiem izmantot ļoti dažÄdas pieejas vienai un tai paÅ”ai jomai ā ziÅojumapmaiÅai starp sistÄmÄm ar starpposma starpnieku. MÄs aplÅ«kosim Ŕīs tehnoloÄ£ijas no paÅ”a sÄkuma un uzsvÄrsim dažÄdu dizaina izvÄļu ietekmi. JÅ«s iegÅ«sit dziļu izpratni par abiem produktiem, izpratni par to, kÄ tos vajadzÄtu un nevajadzÄtu lietot, un sapratni par to, kas jÄÅem vÄrÄ, apsverot citas ziÅojumapmaiÅas tehnoloÄ£ijas nÄkotnÄ.
Pirms sÄkam, apskatÄ«sim pamatus.
Kas ir ziÅojumapmaiÅas sistÄma un kÄpÄc tÄ ir nepiecieÅ”ama?
Lai divas lietojumprogrammas varÄtu sazinÄties viena ar otru, tÄm vispirms ir jÄdefinÄ saskarne. Å Ä«s saskarnes definÄÅ”ana ietver transporta vai protokola, piemÄram, HTTP, MQTT vai SMTP, atlasi un pÄrrunas par ziÅojumu formÄtiem, ar kuriem tiks apmaiÅa starp sistÄmÄm. Tas var bÅ«t stingrs process, piemÄram, XML shÄmas noteikÅ”ana ar ziÅojuma slodzes izmaksu prasÄ«bÄm, vai arÄ« tas var bÅ«t daudz mazÄk formÄls, piemÄram, vienoÅ”anÄs starp diviem izstrÄdÄtÄjiem, ka kÄda HTTP pieprasÄ«juma daļa ietvers klienta identifikatoru .
KamÄr ziÅojumu formÄts un to nosÅ«tÄ«Å”anas secÄ«ba ir konsekventa starp sistÄmÄm, tÄs var sazinÄties savÄ starpÄ, neuztraucoties par otras sistÄmas ievieÅ”anu. Å o sistÄmu iekÅ”ÄjÄs Ä«paŔības, piemÄram, izmantotÄ programmÄÅ”anas valoda vai ietvars, laika gaitÄ var mainÄ«ties. KamÄr tiek uzturÄts pats lÄ«gums, mijiedarbÄ«ba var turpinÄties bez izmaiÅÄm no otras puses. Abas sistÄmas ir efektÄ«vi atsaistÄ«tas (atdalÄ«tas) ar Å”o saskarni.
ZiÅojumapmaiÅas sistÄmas parasti ietver starpnieku starp divÄm sistÄmÄm, kas mijiedarbojas, lai vÄl vairÄk atdalÄ«tu (atdalÄ«tu) sÅ«tÄ«tÄju no adresÄta vai adresÄtiem. Å ajÄ gadÄ«jumÄ ziÅojumapmaiÅas sistÄma ļauj sÅ«tÄ«tÄjam nosÅ«tÄ«t ziÅojumu, nezinot, kur atrodas adresÄts, vai viÅÅ” ir aktÄ«vs un cik gadÄ«jumu ir.
ApskatÄ«sim dažas analoÄ£ijas par problÄmÄm, kuras risina ziÅojumapmaiÅas sistÄma, un ieviesÄ«sim dažus pamatterminus.
Punkts-punkts
Aleksandra dodas uz pastu, lai nosÅ«tÄ«tu Ädamam paku. ViÅa pieiet pie loga un pasniedz darbiniekam paku. Darbinieks paÅem paku un iedod Aleksandrai Äeku. Ädamam nav jÄbÅ«t mÄjÄs, kad paciÅa tiek nosÅ«tÄ«ta. Aleksandra ir pÄrliecinÄta, ka paka Ädamam tiks piegÄdÄta kÄdÄ brÄ«dÄ« nÄkotnÄ, un viÅa varÄs turpinÄt savu biznesu. VÄlÄk kÄdÄ brÄ«dÄ« Ädams saÅem paku.
Å is ir ziÅojumapmaiÅas modeļa piemÄrs punkts uz punktu. Pasta nodaļa Å”eit darbojas kÄ paku sadales mehÄnisms, nodroÅ”inot katras pakas piegÄdi vienu reizi. Izmantojot pasta nodaļu, pakas nosÅ«tÄ«Å”ana tiek atdalÄ«ta no pakas piegÄdes.
KlasiskajÄs ziÅojumapmaiÅas sistÄmÄs no punkta uz punktu modelis tiek ieviests caur rindas. Rinda darbojas kÄ FIFO (first in, first out) buferis, kuru var abonÄt viens vai vairÄki patÄrÄtÄji. Katrs ziÅojums tiek piegÄdÄts tikai kÄdam no abonÄtajiem patÄrÄtÄjiem. Rindas parasti mÄÄ£ina godÄ«gi izplatÄ«t ziÅojumus starp patÄrÄtÄjiem. Å o ziÅojumu saÅems tikai viens patÄrÄtÄjs.
Termins āizturÄ«gsā tiek attiecinÄts uz rindÄm. UzticamÄ«ba ir pakalpojuma rekvizÄ«ts, kas nodroÅ”ina, ka ziÅojumapmaiÅas sistÄma saglabÄs ziÅojumus, ja nav aktÄ«vu abonentu, lÄ«dz patÄrÄtÄjs abonÄ ziÅojumu piegÄdes rindu.
UzticamÄ«ba bieži tiek sajaukta ar neatlaidÄ«ba un, lai gan abi termini tiek lietoti kÄ sinonÄ«mi, tie pilda dažÄdas funkcijas. NoturÄ«ba nosaka, vai ziÅojumapmaiÅas sistÄma ieraksta ziÅojumu uz kÄda veida krÄtuvi starp tÄ saÅemÅ”anu un nosÅ«tÄ«Å”anu patÄrÄtÄjam. ZiÅojumi, kas nosÅ«tÄ«ti uz rindu, var bÅ«t un var nebÅ«t pastÄvÄ«gi.
TieÅ”a ziÅojumapmaiÅa tiek izmantota, ja lietoÅ”anas gadÄ«jumÄ ir nepiecieÅ”ama vienreizÄja darbÄ«ba ar ziÅojumu. PiemÄri: lÄ«dzekļu iemaksa kontÄ vai piegÄdes pasÅ«tÄ«juma aizpildÄ«Å”ana. MÄs apspriedÄ«sim vÄlÄk, kÄpÄc ziÅojumapmaiÅas sistÄma pati par sevi nespÄj nodroÅ”inÄt vienreizÄju piegÄdi un kÄpÄc rindas labÄkajÄ gadÄ«jumÄ var nodroÅ”inÄt piegÄdes garantiju vismaz vienreiz.
IzdevÄjs-abonents
Gabriella sastÄda konferences numuru. KamÄr viÅa ir savienota ar konferenci, viÅa dzird visu, ko runÄ runÄtÄjs, kÄ arÄ« pÄrÄjie sarunas dalÄ«bnieki. Kad viÅa noskaÅojas, viÅa palaiž garÄm teikto. Atjaunojot savienojumu, viÅa turpina dzirdÄt, kas tiek teikts.
Å is ir ziÅojumapmaiÅas modeļa piemÄrs publicÄt-abonÄt. Konferences zvani darbojas kÄ apraides mehÄnisms. Personai, kas runÄ, ir vienalga, cik cilvÄku paÅ”laik piedalÄs sarunÄ ā sistÄma nodroÅ”ina, ka ikviens, kas paÅ”laik ir savienots, dzirdÄs teikto.
KlasiskajÄs ziÅojumapmaiÅas sistÄmÄs publicÄÅ”anas un abonÄÅ”anas ziÅojumapmaiÅas modelis tiek ieviests, izmantojot topi. Topic nodroÅ”ina tÄdu paÅ”u apraides metodi kÄ konferenÄu mehÄnisms. Kad ziÅa tiek nosÅ«tÄ«ta uz tÄmu, tÄ tiek izplatÄ«ta visiem abonÄtajiem lietotÄjiem.
TÄmas parasti ir neuzticams (neizturÄ«gs). TÄpat kÄ klausÄ«tÄjs, kurÅ” nedzird, kas tiek teikts konferences zvanÄ, kad klausÄ«tÄjs atvienojas, tÄmas abonenti nepalaiž garÄm visus ziÅojumus, kas tiek nosÅ«tÄ«ti, atrodoties bezsaistÄ. Å Ä« iemesla dÄļ mÄs varam teikt, ka tÄmas nodroÅ”ina piegÄdes garantiju ne vairÄk kÄ vienu reizi katram patÄrÄtÄjam.
PublicÄÅ”anas un abonÄÅ”anas ziÅojumapmaiÅa parasti tiek izmantota, ja ziÅojumiem ir informatÄ«vs raksturs un viena ziÅojuma zudums nav Ä«paÅ”i nozÄ«mÄ«gs. PiemÄram, tÄma var pÄrraidÄ«t temperatÅ«ras rÄdÄ«jumus no sensoru grupas vienu reizi sekundÄ. SistÄma, kuru interesÄ Å”Ä« brīža temperatÅ«ra un kas abonÄ kÄdu tÄmu, neuztraucas, ja palaidÄ«s garÄm ziÅu ā tuvÄkajÄ laikÄ pienÄks cita.
hibrīda modeļi
Veikala vietne ievieto pasÅ«tÄ«juma ziÅojumus "ziÅojumu rindÄ". Galvenais Å”o ziÅojumu patÄrÄtÄjs ir izpildsistÄma. TurklÄt audita sistÄmai ir jÄbÅ«t Å”o pasÅ«tÄ«juma ziÅojumu kopijÄm turpmÄkai izsekoÅ”anas veikÅ”anai. Abas sistÄmas nevar ļaut ziÅojumiem iziet cauri, pat ja paÅ”as sistÄmas kÄdu laiku nav pieejamas. Vietnei nevajadzÄtu bÅ«t informÄtai par citÄm sistÄmÄm.
LietoÅ”anas gadÄ«jumos bieži ir nepiecieÅ”ama publicÄÅ”anas-abonÄÅ”anas un tieÅ”Äs ziÅojumapmaiÅas modeļu kombinÄcija, piemÄram, ja vairÄkÄm sistÄmÄm ir nepiecieÅ”ama ziÅojuma kopija un, lai novÄrstu ziÅojuma zudumu, ir nepiecieÅ”ama gan uzticamÄ«ba, gan noturÄ«ba.
Å ajos gadÄ«jumos ir nepiecieÅ”ams galamÄrÄ·is (vispÄrÄjs termins rindÄm un tÄmÄm), kas izplata ziÅojumus bÅ«tÄ«bÄ kÄ tÄmu, lai katrs ziÅojums tiktu nosÅ«tÄ«ts uz atseviŔķu sistÄmu, kas interesÄjas par Å”iem ziÅojumiem, bet arÄ« kurÄ katra sistÄma var definÄt vairÄkus patÄrÄtÄjus, kuri saÅem ienÄkoÅ”os ziÅojumus. ziÅas, kas vairÄk atgÄdina rindu. LasÄ«Å”anas veids Å”ajÄ gadÄ«jumÄ ir vienu reizi katrai ieinteresÄtajai pusei. Å iem hibrÄ«dajiem galamÄrÄ·iem bieži ir nepiecieÅ”ama izturÄ«ba, lai, ja patÄrÄtÄjs pÄriet bezsaistÄ, tajÄ laikÄ nosÅ«tÄ«tie ziÅojumi tiktu saÅemti pÄc tam, kad patÄrÄtÄjs ir atkÄrtoti izveidojis savienojumu.
HibrÄ«die modeļi nav jauni, un tos var izmantot lielÄkajÄ daÄ¼Ä ziÅojumapmaiÅas sistÄmu, tostarp gan ActiveMQ (izmantojot virtuÄlos vai saliktos galamÄrÄ·us, kas apvieno tÄmas un rindas), gan Kafka (netieÅ”i kÄ galamÄrÄ·a dizaina pamatÄ«paŔību).
Tagad, kad mums ir zinÄma pamata terminoloÄ£ija un izpratne par to, kam mÄs varÄtu izmantot ziÅojumapmaiÅas sistÄmu, pievÄrsÄ«simies detaļÄm.
Tulkojums veikts:
Å Ä« tulkotÄ daļa:
Lai varÄtu turpinÄt ...
Avots: www.habr.com