Nifhmu s-sensara tal-messaġġi. Titgħallem il-mekkaniżmi tal-messaġġi b'ActiveMQ u Kafka. Kapitolu 1

Hello kulħadd!

Bdejt nittraduċi ktieb żgħir:
«Nifhmu s-sensara tal-messaġġi«,
awtur: Jakub Korab, pubblikatur: O'Reilly Media, Inc., data tal-pubblikazzjoni: Ġunju 2017, ISBN: 9781492049296.

Mill-introduzzjoni għall-ktieb:
"... Dan il-ktieb se jgħallem kif taħseb dwar is-sistemi tal-messaġġi tas-sensar, billi tqabbel u tikkuntrasta żewġ teknoloġiji tas-sensar popolari: Apache ActiveMQ u Apache Kafka. Se tiddeskrivi l-każijiet ta 'użu u l-inċentivi ta' żvilupp li wasslu lill-iżviluppaturi tagħhom biex jieħdu approċċi differenti ħafna għall-istess qasam—messaġġi bejn sistemi b'sensar intermedju. Aħna ser inħarsu lejn dawn it-teknoloġiji mill-bidu u nenfasizzaw l-impatt ta 'diversi għażliet ta' disinn tul it-triq. Int ser tikseb fehim profond taż-żewġ prodotti, fehim ta 'kif għandhom u m'għandhomx jintużaw, u fehim ta' x'għandek tfittex meta tikkunsidra teknoloġiji oħra tal-messaġġi fil-futur. ... »

Partijiet tradotti s'issa:
Kapitolu 1. Introduzzjoni
Kapitolu 3. Kafka

Se npoġġa kapitli kompluti hekk kif jiġu tradotti.

KAPITOLU 1

Introduzzjoni

Il-messaġġi minn sistema għal sistema huwa wieħed mill-oqsma l-inqas mifhuma tal-IT. Bħala żviluppatur jew perit, tista' tkun familjari ħafna ma' diversi oqfsa u databases. Madankollu, huwa probabbli li inti għandek biss familjarità mogħdija ma 'kif jaħdmu teknoloġiji ta' messaġġi bbażati fuq sensar. Jekk tħossok hekk, tinkwetax, int f'kumpanija tajba.

In-nies tipikament ikollhom kuntatt limitat ħafna mal-infrastruttura tal-messaġġi. Ħafna drabi jgħaqqdu ma 'sistema maħluqa żmien twil ilu, jew iniżżlu distribuzzjoni mill-Internet, jinstallawha fi PROM u jibdew jiktbu kodiċi għaliha. Wara li tmexxi l-infrastruttura fi PROM, ir-riżultati jistgħu jitħalltu: messaġġi jintilfu minħabba fallimenti, it-trażmissjoni ma taħdimx kif stennejt, jew sensara "hang" lill-produtturi tiegħek jew ma tibgħatx messaġġi lill-konsumaturi tiegħek.

Ħsejjes familjari?

Xenarju komuni huwa fejn il-kodiċi tal-messaġġi tiegħek jaħdem tajjeb, għalissa. Sakemm tieqaf taħdem. Dan il-perjodu jħolli l-gwardja tiegħu f'sens falz ta 'sigurtà, li jwassal għal aktar kodiċi bbażat fuq twemmin falz dwar l-imġieba fundamentali tat-teknoloġija. Meta l-affarijiet jibdew imorru ħażin, tkun qed iħabbat wiċċek ma' verità inkonvenjenti: li ma fhimtx verament l-imġiba sottostanti tal-prodott jew il-kompromessi magħżula mill-awturi, bħall-prestazzjoni versus l-affidabbiltà, jew it-tranżazzjoni kontra l-iskalabbiltà orizzontali .

Mingħajr fehim profond ta’ kif jaħdmu s-sensara, in-nies jagħmlu dikjarazzjonijiet li jidhru raġonevoli dwar is-sistemi tal-messaġġi tagħhom, bħal:

  • Is-sistema qatt mhu se titlef messaġġi
  • Il-messaġġi se jiġu pproċessati b'mod sekwenzjali
  • Iż-żieda tal-konsumaturi se tagħmel is-sistema aktar mgħaġġla
  • Il-messaġġi se jitwasslu darba biss

Sfortunatament, xi wħud minn dawn id-dikjarazzjonijiet huma bbażati fuq suppożizzjonijiet li japplikaw biss taħt ċerti ċirkostanzi, filwaqt li oħrajn huma sempliċement żbaljati.

Dan il-ktieb jgħallmu kif taħseb dwar sistemi ta’ messaġġi bbażati fuq sensar, billi tqabbel u tikkuntrasta żewġ teknoloġiji ta’ sensar popolari: Apache ActiveMQ u Apache Kafka. Se tiddeskrivi l-każijiet ta 'użu u l-inċentivi ta' żvilupp li wasslu lill-iżviluppaturi tagħhom biex jieħdu approċċi differenti ħafna għall-istess qasam—messaġġi bejn sistemi b'sensar intermedju. Aħna ser inħarsu lejn dawn it-teknoloġiji mill-bidu u nenfasizzaw l-impatt ta 'diversi għażliet ta' disinn tul it-triq. Int ser tikseb fehim profond taż-żewġ prodotti, fehim ta 'kif għandhom u m'għandhomx jintużaw, u fehim ta' x'għandek tfittex meta tikkunsidra teknoloġiji oħra tal-messaġġi fil-futur.

Qabel ma nibdew, ejja mmorru fuq l-affarijiet bażiċi.

X'inhi Sistema ta' Messaġġi u għaliex hija meħtieġa?

Sabiex żewġ applikazzjonijiet jikkomunikaw ma' xulxin, l-ewwel iridu jiddefinixxu interface. Id-definizzjoni ta 'din l-interface tinvolvi l-għażla ta' trasport jew protokoll, bħal HTTP, MQTT, jew SMTP, u n-negozjar tal-formati tal-messaġġ li se jiġu skambjati bejn is-sistemi. Dan jista 'jkun proċess strett, bħad-definizzjoni ta' skema XML b'rekwiżiti tal-ispiża tat-tagħbija tal-messaġġ, jew jista 'jkun ħafna inqas formali, bħal ftehim bejn żewġ żviluppaturi li xi parti mit-talba HTTP se jkun fiha l-identifikatur tal-klijent .

Sakemm il-format tal-messaġġi u l-ordni li fiha jintbagħtu jkunu konsistenti bejn is-sistemi, jistgħu jikkomunikaw ma 'xulxin mingħajr ma joqogħdu jinkwetaw dwar l-implimentazzjoni tas-sistema l-oħra. L-intern ta' dawn is-sistemi, bħall-lingwa tal-programmazzjoni jew il-qafas użat, jistgħu jinbidlu maż-żmien. Sakemm il-kuntratt innifsu jinżamm, l-interazzjoni tista 'tkompli mingħajr bidliet min-naħa l-oħra. Iż-żewġ sistemi huma effettivament diżakkoppjati (separati) minn din l-interface.

Is-sistemi tal-messaġġi tipikament jinvolvu intermedjarju bejn żewġ sistemi li jinteraġixxu biex jisseparaw aktar (jisseparaw) il-mittent mir-riċevitur jew riċevituri. F'dan il-każ, is-sistema tal-messaġġi tippermetti lil min jibgħat messaġġ mingħajr ma jkun jaf fejn hu r-riċevitur, jekk hux attiv, jew kemm hemm każijiet.

Ejja nħarsu lejn ftit analoġiji għat-tipi ta 'problemi li ssolvi sistema ta' messaġġi u nintroduċu xi termini bażiċi.

Punt sa Punt

Alexandra tmur l-uffiċċju postali biex tibgħat pakkett Adam. Hija tmur lejn it-tieqa u tagħti lill-impjegat il-pakkett. L-impjegat jiġbor il-pakkett u jagħti irċevuta lil Alexandra. Adam m'għandux għalfejn ikun id-dar meta jintbagħat il-pakkett. Alexandra hija kunfidenti li l-pakkett se jitwassal lil Adam f'xi punt fil-futur u tista 'tkompli tagħmel in-negozju tagħha. Aktar tard f'xi punt Adam jirċievi pakkett.

Dan huwa eżempju ta 'mudell ta' messaġġi punt għal punt. L-uffiċċju tal-posta hawn jaġixxi bħala mekkaniżmu ta' distribuzzjoni tal-pakketti, u jiżgura li kull pakkett jiġi kkonsenjat darba. L-użu ta' uffiċċju postali jifred l-att li jintbagħat pakkett mill-kunsinna tal-pakkett.
F'sistemi ta 'messaġġi klassiċi, il-mudell punt għal punt huwa implimentat permezz kjuwijiet. Il-kju jaġixxi bħala buffer FIFO (first in, first out) li jista' jiġi sottoskritt minn konsumatur wieħed jew aktar. Kull messaġġ jitwassal biss lil wieħed mill-konsumaturi sottoskritti. Il-kjuwijiet tipikament jippruvaw iqassmu l-messaġġi b'mod ġust fost il-konsumaturi. Konsumatur wieħed biss se jirċievi dan il-messaġġ.

It-terminu "durabbli" huwa applikat għall-kjuwijiet. Affidabilità hija proprjetà tas-servizz li tiżgura li s-sistema tal-messaġġi tippersisti messaġġi fin-nuqqas ta' abbonati attivi sakemm konsumatur jissottoskrivi għall-kju għall-kunsinna tal-messaġġi.

L-affidabbiltà ħafna drabi tiġi konfuża persistenza u għalkemm iż-żewġ termini jintużaw minflok xulxin, iservu funzjonijiet differenti. Il-persistenza tiddetermina jekk is-sistema tal-messaġġi tiktebx messaġġ f'xi tip ta' ħażna bejn li tirċevih u tibgħatha lill-konsumatur. Messaġġi mibgħuta lill-kju jistgħu jew ma jistgħux ikunu persistenti.
Messaġġ minn punt għal punt jintuża meta l-każ ta' użu jeħtieġ azzjoni ta' darba fuq il-messaġġ. Eżempji jinkludu d-depożitu ta' fondi f'kont jew it-tlestija ta' ordni ta' kunsinna. Niddiskutu aktar tard għaliex is-sistema tal-messaġġi waħedha ma tistax tipprovdi kunsinna ta' darba u għaliex il-kjuwijiet jistgħu fl-aħjar jipprovdu garanzija ta' kunsinna mill-inqas darba.

Pubblikatur-Abbonat

Gabriella ċċempel in-numru tal-konferenza. Waqt li tkun konnessa mal-konferenza, tisma’ dak kollu li jgħid il-kelliem, flimkien mal-bqija tal-parteċipanti tas-sejħa. Meta tispiċċa, hija titlef dak li jingħad. Meta terġa’ titqabbad, tkompli tisma’ dak li qed jingħad.

Dan huwa eżempju ta 'mudell ta' messaġġi tippubblika-abbona. Is-sejħa ta' konferenza taġixxi bħala mekkaniżmu ta' xandir. Il-persuna li titkellem ma jimpurtax kemm hemm nies bħalissa fuq it-telefonata - is-sistema tiżgura li kull min ikun imqabbad bħalissa jisma' dak li qed jingħad.
F'sistemi ta 'messaġġi klassiċi, il-mudell ta' messaġġi publish-subscribe huwa implimentat permezz uċuħ. Is-suġġett jipprovdi l-istess metodu ta 'xandir bħall-mekkaniżmu tal-konferenzi. Meta messaġġ jintbagħat lil suġġett, dan jitqassam għall-utenti kollha abbonati.

Is-suġġetti huma normalment mhux affidabbli (mhux dejjiema). Bħal semmiegħ li ma jistax jisma' dak li jingħad fuq telefonata konferenza meta s-semmiegħ jiskonnettja, l-abbonati tas-suġġett jitilfu kwalunkwe messaġġ li jintbagħat waqt li jkunu offline. Għal din ir-raġuni, nistgħu ngħidu li s-suġġetti jipprovdu garanzija ta 'kunsinna mhux aktar minn darba għal kull konsumatur.

Il-messaġġi ta' pubblikazzjoni-abbonament tipikament jintużaw meta l-messaġġi huma ta' natura informattiva u t-telf ta' messaġġ wieħed ma jkunx partikolarment sinifikanti. Pereżempju, suġġett jista 'jittrażmetti qari tat-temperatura minn grupp ta' sensuri darba kull sekonda. Sistema li tinteressa t-temperatura attwali u li tabbona għal xi suġġett mhux se tinkwieta jekk titlef xi messaġġ – tasal oħra fil-futur qarib.

mudelli ibridi

Il-websajt tal-maħżen tpoġġi messaġġi ta 'ordni fi "kju ta' messaġġi." Il-konsumatur ewlieni ta’ dawn il-messaġġi huwa s-sistema eżekuttiva. Barra minn hekk, is-sistema tal-awditjar għandu jkollha kopji ta’ dawn il-messaġġi tal-ordni għal traċċar sussegwenti. Iż-żewġ sistemi ma jistgħux iħallu messaġġi jgħaddu, anki jekk is-sistemi nfushom ma jkunux disponibbli għal xi żmien. Il-websajt m'għandhiex tkun konxja ta 'sistemi oħra.

Każijiet ta' użu spiss jeħtieġu taħlita ta' mudelli ta' messaġġi publish-subscribe u punt sa punt, bħal meta sistemi multipli jeħtieġu kopja ta' messaġġ u kemm l-affidabbiltà kif ukoll il-persistenza huma meħtieġa biex jipprevjenu t-telf tal-messaġġ.

Dawn il-każijiet jeħtieġu destinazzjoni (terminu ġenerali għal kjuwijiet u suġġetti) li tqassam messaġġi bażikament bħala suġġett, sabiex kull messaġġ jintbagħat lil sistema separata interessata f’dawk il-messaġġi, iżda wkoll li fiha kull sistema tista’ tiddefinixxi diversi konsumaturi li jirċievu messaġġi, li huwa aktar bħal kju. It-tip ta 'qari f'dan il-każ huwa darba għal kull parti interessata. Dawn id-destinazzjonijiet ibridi ħafna drabi jeħtieġu durabilità sabiex jekk konsumatur imur offline, messaġġi li jintbagħtu f'dak il-ħin jiġu riċevuti wara li l-konsumatur jerġa' jqabbad.

Mudelli ibridi mhumiex ġodda u jistgħu jintużaw fil-biċċa l-kbira tas-sistemi ta 'messaġġi, inklużi kemm ActiveMQ (permezz ta' destinazzjonijiet virtwali jew komposti li jgħaqqdu suġġetti u kjuwijiet) u Kafka (impliċitament, bħala proprjetà fundamentali tad-disinn tad-destinazzjoni tiegħu).

Issa li għandna xi terminoloġija bażika u nifhmu għalxiex nistgħu nużaw sistema ta' messaġġi, ejja nidħlu għad-dettalji.

Traduzzjoni magħmula: tele.gg/middle_java

Il-parti tradotta li ġejja: Kapitolu 3. Kafka

Biex titkompla ...

Sors: www.habr.com

Żid kumment