Mezu-artekariak ulertzea. ActiveMQ eta Kafka-rekin mezularitzaren mekanika ikastea. 1. kapitulua

Hola a todos!

Liburu txiki bat itzultzen hasi nintzen:
Β«Mezu-artekariak ulertzea',
egilea: Jakub Korab, argitaletxea: O'Reilly Media, Inc., argitalpen data: 2017ko ekaina, ISBN: 9781492049296.

Liburuaren sarreratik:
"... Liburu honek artekarien mezularitza-sistemei buruz nola pentsatu irakatsiko dizu, bi broker-teknologia ezagunekin alderatuz eta kontrastatuz: Apache ActiveMQ eta Apache Kafka. Beren garatzaileak eremu bererako oso ikuspegi desberdinak hartzera eraman dituzten erabilera kasuak eta garapen-pizgarriak azalduko ditu: bitarteko broker batekin sistemen arteko mezularitza. Teknologia hauek oinarritik aztertuko ditugu eta bidean diseinu-aukerek duten eragina nabarmenduko dugu. Bi produktuen ulermen sakona lortuko duzu, nola erabili behar diren eta ez nola erabili behar diren ulertuko duzu, eta etorkizunean beste mezularitza-teknologia batzuk kontuan hartzen dituzunean zer begiratu behar den ulertuko duzu. ... "

Orain arte itzulitako zatiak:
1. Kapitulua. Sarrera
3. kapitulua. Kafka

Itzultzen diren heinean amaitutako kapituluak argitaratuko ditut.

1. KAPITULUA

Sarrera

Sistema-sistemako mezularitza informatikaren arlo gutxien ulertzen denetako bat da. Garatzaile edo arkitekto gisa, baliteke hainbat esparru eta datu-baseekin oso ezagunak izatea. Hala ere, litekeena da bitartekarietan oinarritutako mezularitza-teknologiek nola funtzionatzen duten ezagutzea. Horrela sentitzen bazara, ez kezkatu, konpainia onean zaude.

Jendeak normalean harreman oso mugatua izaten du mezularitza-azpiegiturarekin. Askotan aspaldi sortutako sistema batera konektatzen dira, edo Internetetik banaketa bat deskargatu, PROM-en instalatu eta kodea idazten hasten dira. PROM-en azpiegitura exekutatu ondoren, emaitzak nahastu daitezke: hutsegiteen ondorioz mezuak galtzen dira, bidalketak ez du espero zen bezala funtzionatzen, edo artekariek zure ekoizleak "zintzilikatzen" dituzte edo ez diete mezurik bidaltzen zure kontsumitzaileei.

Ezaguna al zaizu?

Momentuz, zure mezularitza-kodeak oso ondo funtzionatzen duen egoera da. Funtzionatzeari utzi arte. Aldi honek norberaren guardia segurtasun sentsazio faltsu batean baretzen du, teknologiaren oinarrizko portaerari buruzko uste faltsuetan oinarritutako kode gehiago sortuz. Gauzak okertzen hasten direnean, egia deseroso baten aurrean aurkitzen zara: ez duzula benetan ulertu produktuaren azpiko portaera edo egileek aukeratutako konpromezuak, hala nola, errendimendua versus fidagarritasuna edo transakzionaltasuna versus eskalagarritasun horizontala. .

Artekariek nola funtzionatzen duten ulertu gabe, jendeak bere mezularitza-sistemei buruzko adierazpen zentzuzkoak egiten ditu, hala nola:

  • Sistemak ez ditu inoiz mezuak galduko
  • Mezuak sekuentzialki prozesatuko dira
  • Kontsumitzaileak gehitzeak sistema azkarragoa egingo du
  • Mezuak behin bakarrik bidaliko dira

Zoritxarrez, adierazpen horietako batzuk egoera jakin batzuetan soilik aplikatzen diren hipotesietan oinarritzen dira, eta beste batzuk okerrak dira.

Liburu honek artekarietan oinarritutako mezularitza-sistemei buruz nola pentsatu irakatsiko dizu, bi broker-teknologia ezagunen alderatuz eta kontrastatuz: Apache ActiveMQ eta Apache Kafka. Beren garatzaileak eremu bererako oso ikuspegi desberdinak hartzera eraman dituzten erabilera kasuak eta garapen-pizgarriak azalduko ditu: bitarteko broker batekin sistemen arteko mezularitza. Teknologia hauek oinarritik aztertuko ditugu eta bidean diseinu-aukerek duten eragina nabarmenduko dugu. Bi produktuen ulermen sakona lortuko duzu, nola erabili behar diren eta nola ez, eta etorkizunean beste mezularitza-teknologia batzuk kontuan hartzen dituzunean zer begiratu behar den ulertuko duzu.

Hasi baino lehen, goazen oinarriak.

Zer da Mezularitza Sistema bat eta zergatik behar da?

Bi aplikazio elkarren artean komunikatzeko, lehenik interfaze bat definitu behar dute. Interfaze hau definitzeak garraio edo protokolo bat hautatzea dakar, hala nola HTTP, MQTT edo SMTP, eta sistemen artean trukatuko diren mezu formatuak negoziatzea. Prozesu zorrotza izan daiteke hau, esate baterako, XML eskema bat definitzea mezuen karga-kostu-eskakizunekin, edo askoz ere forma txikiagoa izan daiteke, hala nola bi garatzaileen arteko akordioa HTTP eskaeraren zatiren batek bezeroaren identifikatzailea edukiko duela.

Mezuen formatua eta bidaltzen diren ordena sistemen artean koherenteak diren bitartean, elkarren artean komunikatu ahal izango dira beste sistemaren ezarpenaz kezkatu gabe. Sistema horien barneak, hala nola, programazio-lengoaia edo erabilitako markoa, denboran zehar alda daitezke. Kontratua bera mantentzen den bitartean, elkarrekintzak beste alde batetik aldaketarik egin gabe jarrai dezake. Interfaze honen bidez bi sistemak eraginkortasunez desakoplatuta (bereizita) daude.

Mezularitza-sistemek normalean elkarreragiten duten bi sistemen arteko bitartekari bat inplikatzen dute, igorlea hartzailearen edo hartzaileengandik gehiago desakoplatzeko (banatzeko). Kasu honetan, mezularitza-sistemak igorleak mezu bat bidaltzeko aukera ematen dio hartzailea non dagoen, aktibo dagoen edo zenbat instantzia dagoen jakin gabe.

Ikus ditzagun analogia pare bat mezularitza-sistemak konpontzen dituen arazo motak eta sartu oinarrizko termino batzuk.

Puntuz puntu

Alexandra posta bulegora doa Adami pakete bat bidaltzera. Leihora joan eta paketea ematen dio langileari. Langileak paketea hartu eta ordainagiria ematen dio Alexandrari. Adamek ez du etxean egon behar paketea bidaltzen denean. Alexandra ziur dago paketea Adami entregatuko zaiola etorkizunean eta bere negozioetan jarraitu ahal izango duela. Geroago, noizbait Adamek pakete bat jasotzen du.

Hau mezularitza-eredu baten adibidea da puntuz puntu. Hemen posta bulegoak paketeak banatzeko mekanismo gisa funtzionatzen du, pakete bakoitza behin entregatzen dela bermatuz. Posta-bulego bat erabiltzeak pakete bat bidaltzea eta paketea bidaltzea bereizten du.
Mezularitza-sistema klasikoetan, puntutik puntuko eredua bidez ezartzen da ilaran. Ilarak kontsumitzaile batek edo gehiagok harpidetu dezakeen FIFO (lehen sartu, lehen atera) buffer gisa jokatzen du. Mezu bakoitza bakarrik bidaltzen da harpidetutako kontsumitzaileetako bati. Ilarak normalean kontsumitzaileen artean mezuak modu egokian banatzen saiatzen dira. Kontsumitzaile bakarrak jasoko du mezu hau.

"Iraunkorra" terminoa ilaretan aplikatzen da. Fidagarritasuna zerbitzu-propietate bat da, mezularitza-sistemak harpidedun aktiborik ezean mezuak mantenduko dituela ziurtatzen duena, kontsumitzaile bat mezuak bidaltzeko ilaran harpidetu arte.

Askotan fidagarritasuna nahasten da iraunkortasuna eta bi terminoak elkartruka erabiltzen badira ere, funtzio desberdinak betetzen dituzte. Iraunkortasunak zehazten du mezularitza-sistemak mezu bat idazten duen biltegiratze mota batean, jaso eta kontsumitzaileari bidaltzen duen artean. Ilarara bidalitako mezuak iraunkorrak izan daitezke edo ez.
Puntutik puntuko mezularitza erabiltzen da erabilera kasuak mezuan behin-behineko ekintza bat eskatzen duenean. Adibideak kontu batean funtsak gordailatzea edo entrega-eskaera bat osatzea dira. Geroago eztabaidatuko dugu zergatik mezularitza-sistemak bere kabuz ezin duen entrega puntuala eman eta zergatik ilarek entrega-bermea eman dezaketen onenean. behin bederen.

Argitaletxea-Harpideduna

Gabriellak konferentziaren zenbakia markatzen du. Konferentziara konektatuta dagoen bitartean, hizlariak esaten duen guztia entzuten du, gainerako deian parte-hartzaileekin batera. Sintonizatuta dagoenean, esandakoa galdu egiten du. Berriro konektatzen denean, esaten dena entzuten jarraitzen du.

Hau mezularitza-eredu baten adibidea da argitaratu-harpidetu. Konferentzia-deiak igorpen-mekanismo gisa jokatzen du. Hitz egiten ari denari ez zaio axola zenbat pertsona dauden une honetan deian; sistemak ziurtatzen du une honetan konektatuta dagoen edonork entzungo duela esaten dena.
Mezularitza-sistema klasikoetan, argitaratze-harpidetza mezularitza eredua bidez ezartzen da gailurrak. Topic-ek konferentzia-mekanismoaren difusio-metodo bera eskaintzen du. Mezu bat gai bati bidaltzen zaionean, banatzen da harpidetutako erabiltzaile guztientzat.

Gaiak izan ohi dira fidagarria (ez iraunkorra). Entzulea deskonektatzen denean konferentzia-deian esaten dena entzun ezin duen entzule batek bezala, gaiaren harpidedunek lineaz kanpo dauden bitartean bidaltzen diren mezuak galdu egiten dituzte. Hori dela eta, gaiek entrega-bermea ematen dutela esan dezakegu ez behin baino gehiagotan kontsumitzaile bakoitzarentzat.

Argitaratu-harpidetzeko mezuak normalean erabiltzen dira mezuak informazio izaera dutenean eta mezu baten galera bereziki esanguratsua ez denean. Esate baterako, gai batek sentsore talde baten tenperaturaren irakurketak transmiti ditzake segundoko behin. Egungo tenperaturan interesatzen zaion eta gai batera harpidetzen den sistema batek ez du kezkatuko mezuren bat galduz gero, etorkizun hurbilean beste bat iritsiko da.

eredu hibridoak

Dendaren webguneak eskaera-mezuak "mezu-ilara" batean jartzen ditu. Mezu horien kontsumitzaile nagusia sistema exekutiboa da. Horrez gain, auditoretza-sistemak eskaera-mezu horien kopiak izan beharko lituzke gero jarraipena egiteko. Bi sistemek ezin dute mezuak pasatzen utzi, nahiz eta sistemak denbora pixka batean erabilgarri egon ez. Webguneak ez luke beste sistema batzuen berri izan behar.

Erabilera-kasuek sarritan argitalpen-harpidetza eta puntuz puntuko mezularitza-ereduen konbinazioa behar dute, adibidez, sistema anitzek mezu baten kopia behar dutenean eta fidagarritasuna eta iraunkortasuna behar direnean mezuak gal ez daitezen.

Kasu hauek helmuga bat behar dute (ilarak eta gaietarako termino orokorra) mezuak, funtsean, gai gisa banatzen dituena, mezu bakoitza mezu horietan interesa duen sistema bereizi batera bidal dadin, baina, era berean, sistema bakoitzak sarrerako sarrera jasotzen duten hainbat kontsumitzaile defini ditzakeen. mezuak, ilara baten antza gehiago duena. Kasu honetan irakurketa mota da interesdun bakoitzeko behin. Helmuga hibrido hauek iraunkortasuna eskatzen dute askotan, beraz, kontsumitzailea lineaz kanpo geratzen bada, une horretan bidaltzen diren mezuak kontsumitzailea berriro konektatu ondoren jasotzen dira.

Eredu hibridoak ez dira berriak eta mezularitza-sistema gehienetan erabil daitezke, bai ActiveMQ (gaiak eta ilarak konbinatzen dituzten helmuga birtualen edo konposatuen bidez) bai Kafkan (inplizituki, bere helmugaren diseinuaren oinarrizko propietate gisa).

Oinarrizko terminologia eta mezularitza-sistema bat zertarako erabil genezakeen ulertzen dugunean, jar gaitezen xehetasunetara.

Itzulpena egina: tele.gg/middle_java

Itzulitako zati hau: 3. kapitulua. Kafka

Jarraitu ahal izateko ...

Iturria: www.habr.com

Gehitu iruzkin berria