Pagsabot sa mga broker sa mensahe. Pagkat-on sa mga mekaniko sa pagmemensahe sa ActiveMQ ug Kafka. Kapitulo 1

Hello sa tanan!

Nagsugod ko sa paghubad og gamay nga libro:
Β«Pagsabot sa mga Broker sa MensaheΒ«,
awtor: Jakub Korab, magmamantala: O'Reilly Media, Inc., petsa sa pagmantala: Hunyo 2017, ISBN: 9781492049296.

Gikan sa pasiuna hangtod sa libro:
"... Kini nga libro magtudlo kanimo kung unsaon paghunahuna bahin sa mga sistema sa pagmemensahe sa broker, pagtandi ug pagtandi sa duha ka sikat nga teknolohiya sa broker: Apache ActiveMQ ug Apache Kafka. Kini maglatid sa mga kaso sa paggamit ug mga insentibo sa pag-uswag nga nagtultol sa ilang mga developers sa paghimo og lahi kaayo nga mga pamaagi sa samang lugarβ€”pagmensahe tali sa mga sistema nga adunay intermediate nga broker. Atong tan-awon ang kini nga mga teknolohiya gikan sa sinugdanan ug ipasiugda ang epekto sa lainlaing mga kapilian sa disenyo. Makuha nimo ang lawom nga pagsabut sa duha nga mga produkto, usa ka pagsabut kung giunsa kini kinahanglan ug dili kinahanglan gamiton, ug usa ka pagsabut kung unsa ang pangitaon kung gikonsiderar ang ubang mga teknolohiya sa pagmemensahe sa umaabot. … ”

Mga bahin nga gihubad hangtod karon:
Kapitulo 1. Pasiuna
Kapitulo 3. Kafka

Akong i-post ang nahuman nga mga kapitulo samtang kini gihubad.

KAPITULO 1

Pasiuna

Ang system-to-system messaging usa sa labing gamay nga nasabtan nga mga bahin sa IT. Isip usa ka developer o arkitekto, tingali pamilyar ka kaayo sa lainlaing mga balangkas ug mga database. Bisan pa, lagmit nga ikaw adunay usa ka lumalabay nga pamilyar sa kung giunsa ang mga teknolohiya sa pagmemensa nga nakabase sa broker nga nagtrabaho. Kung ingon niini ang imong gibati, ayaw kabalaka, maayo ang imong kauban.

Ang mga tawo kasagaran adunay limitado nga kontak sa imprastraktura sa pagmemensahe. Kanunay silang magkonektar sa usa ka sistema nga gihimo sa dugay na nga panahon, o mag-download sa usa ka pag-apod-apod gikan sa Internet, i-install kini sa PROM ug magsugod pagsulat code alang niini. Human sa pagpadagan sa imprastraktura sa PROM, ang mga resulta mahimong magkasagol: ang mga mensahe nawala tungod sa mga kapakyasan, ang pagpadala dili molihok sama sa imong gilauman, o ang mga brokers "magbitay" sa imong mga prodyuser o dili magpadala sa mga mensahe ngadto sa imong mga konsumidor.

Daw pamilyar?

Usa ka sagad nga senaryo kung diin ang imong code sa pagmemensa nagtrabaho maayo, sa pagkakaron. Hangtod nga nihunong kini sa pagtrabaho. Kini nga panahon nagpahinay sa pagbantay sa usa ka tawo sa usa ka sayup nga pagbati sa seguridad, nga nagdala sa dugang nga code base sa sayup nga mga pagtuo bahin sa sukaranan nga pamatasan sa teknolohiya. Kung ang mga butang magsugod nga dili maayo, nag-atubang ka sa usa ka dili kombenyente nga kamatuoran: nga wala gyud nimo nasabtan ang nagpahiping kinaiya sa produkto o ang mga trade-off nga gipili sa mga tagsulat, sama sa pasundayag kumpara sa kasaligan, o transactionality kumpara sa horizontal scalability .

Kung wala’y lawom nga pagsabut kung giunsa ang pagtrabaho sa mga broker, ang mga tawo naghimo nga daw makatarunganon nga mga pahayag bahin sa ilang mga sistema sa pagmemensahe, sama sa:

  • Ang sistema dili mawad-an sa mga mensahe
  • Ang mga mensahe iproseso nga sunud-sunod
  • Ang pagdugang sa mga konsumedor makahimo sa sistema nga mas paspas
  • Kausa ra ipadala ang mga mensahe

Ikasubo, ang pipila niini nga mga pahayag gibase sa mga pangagpas nga magamit lamang ubos sa piho nga mga kahimtang, samtang ang uban dili husto.

Kini nga libro magtudlo kanimo kung unsaon paghunahuna bahin sa mga sistema sa pagmemensa nga nakabase sa broker, pagtandi ug pagtandi sa duha ka sikat nga teknolohiya sa broker: Apache ActiveMQ ug Apache Kafka. Kini maglatid sa mga kaso sa paggamit ug mga insentibo sa pag-uswag nga nagtultol sa ilang mga developers sa paghimo og lahi kaayo nga mga pamaagi sa samang lugarβ€”pagmensahe tali sa mga sistema nga adunay intermediate nga broker. Atong tan-awon ang kini nga mga teknolohiya gikan sa sinugdanan ug ipasiugda ang epekto sa lainlaing mga kapilian sa disenyo. Makabaton ka ug lawom nga pagsabot sa duha ka mga produkto, usa ka pagsabot kon sa unsang paagi sila angay ug dili angay gamiton, ug usa ka pagsabot kon unsa ang pangitaon sa dihang magkonsiderar sa ubang mga teknolohiya sa pagmemensahe sa umaabot.

Sa dili pa kita magsugod, atong hisgotan ang mga sukaranan.

Unsa ang Messaging System ug nganong gikinahanglan kini?

Aron ang duha ka aplikasyon magkomunikar sa usag usa, kinahanglan una nila nga ipasabut ang usa ka interface. Ang pagpasabot niini nga interface naglakip sa pagpili og transport o protocol, sama sa HTTP, MQTT, o SMTP, ug pagnegosasyon sa mga format sa mensahe nga ibaylo tali sa mga sistema. Mahimong usa kini ka estrikto nga proseso, sama sa pagpasabot sa XML schema nga adunay mga kinahanglanon sa gasto sa payload sa mensahe, o mahimo nga dili kaayo pormal, sama sa usa ka kasabutan tali sa duha ka developers nga ang pipila ka bahin sa HTTP nga hangyo maglangkob sa client identifier .

Hangtud nga ang pormat sa mga mensahe ug ang han-ay sa pagpadala niini managsama tali sa mga sistema, mahimo silang makigkomunikar sa usag usa nga dili mabalaka bahin sa pagpatuman sa lain nga sistema. Ang internals niini nga mga sistema, sama sa programming language o framework nga gigamit, mahimong mausab sa paglabay sa panahon. Hangtud nga ang kontrata mismo gipadayon, ang interaksyon mahimong magpadayon nga wala’y mga pagbag-o gikan sa pikas nga bahin. Ang duha ka mga sistema epektibo nga gibuak (gibulag) sa kini nga interface.

Ang mga sistema sa pagmemensa kasagaran naglakip sa usa ka tigpataliwala tali sa duha ka mga sistema nga nag-interact aron sa dugang nga decouple (pagbulag) sa nagpadala gikan sa nakadawat o mga nakadawat. Sa kini nga kaso, ang sistema sa pagmemensahe nagtugot sa nagpadala nga magpadala usa ka mensahe nga wala nahibal-an kung diin ang nakadawat, kung siya aktibo, o kung pila ang mga higayon.

Atong tan-awon ang usa ka pares nga mga analohiya alang sa mga klase sa mga problema nga gisulbad sa usa ka sistema sa pagmemensahe ug gipaila ang pipila nga sukaranan nga mga termino.

Punto-sa-Punto

Si Alexandra miadto sa post office aron padalhan si Adam ug usa ka pakete. Miadto siya sa bintana ug gitunol sa empleyado ang pakete. Gikuha sa empleyado ang pakete ug gihatagan si Alexandra og resibo. Si Adan dili kinahanglan nga naa sa balay kung ipadala ang pakete. Si Alexandra masaligon nga ang package ihatod kang Adam sa umaabot nga panahon ug makapadayon sa iyang negosyo. Sa wala madugay si Adan nakadawat ug usa ka pakete.

Kini usa ka pananglitan sa usa ka modelo sa pagmemensahe point-to-point. Ang opisina sa koreyo dinhi naglihok isip mekanismo sa pag-apod-apod sa parsela, nga nagsiguro nga ang matag parsela mahatud kausa. Ang paggamit sa usa ka post office nagbulag sa buhat sa pagpadala sa usa ka pakete gikan sa paghatud sa pakete.
Sa classic messaging systems, ang point-to-point nga modelo gipatuman pinaagi sa mga pila. Ang pila naglihok isip FIFO (first in, first out) buffer nga mahimong ma-subscribe sa usa o daghang mga konsumidor. Ang matag mensahe gihatag lamang sa usa sa mga naka-subscribe nga konsumidor. Ang mga pila kasagarang mosulay sa pag-apod-apod sa mga mensahe nga patas taliwala sa mga konsumedor. Usa ra ka konsumidor ang makadawat niini nga mensahe.

Ang termino nga "malungtaron" gigamit sa mga pila. Kasaligan usa ka propyedad sa serbisyo nga nagsiguro nga ang sistema sa pagmemensahe magpadayon sa mga mensahe kung wala ang mga aktibo nga subscriber hangtod nga ang usa ka konsumedor mag-subscribe sa pila alang sa paghatud sa mensahe.

Ang kasaligan kanunay nga gilibog sa paglahutay ug bisan pa nga ang duha ka termino gigamit nga baylobaylo, nagsilbi kini nga lainlaing mga gimbuhaton. Ang pagpadayon nagtino kung ang sistema sa pagmemensahe nagsulat usa ka mensahe sa usa ka matang sa pagtipig tali sa pagdawat niini ug pagpadala niini sa konsumidor. Ang mga mensahe nga gipadala sa pila mahimo o dili magpadayon.
Ang point-to-point messaging gigamit kung ang use case nanginahanglan usa ka higayon nga aksyon sa mensahe. Ang mga pananglitan naglakip sa pagdeposito sa mga pundo ngadto sa usa ka account o pagkompleto sa usa ka delivery order. Atong hisgotan sa ulahi kung nganong ang sistema sa pagmemensahe sa iyang kaugalingon dili makahimo sa paghatag og usa ka higayon nga paghatod ug nganong ang mga pila makahatag ug garantiya sa pagpadala. labing menos kausa.

Publisher-Subscriber

Gi-dial ni Gabriella ang numero sa komperensya. Samtang konektado siya sa komperensya, madungog niya ang tanan nga gisulti sa mamumulong, kauban ang ubang mga partisipante sa pagtawag. Sa iyang pag-tune out, gimingaw siya sa gisulti. Sa dihang nakonektar pag-usab, nagpadayon siya sa pagkadungog sa gisulti.

Kini usa ka pananglitan sa usa ka modelo sa pagmemensahe publish-subscribe. Ang pagtawag sa komperensya naglihok isip mekanismo sa pagsibya. Ang tawo nga nagsulti dili igsapayan kung pila ka mga tawo ang karon nagtawag - gisiguro sa sistema nga bisan kinsa nga konektado karon makadungog kung unsa ang gisulti.
Sa classic messaging systems, ang publish-subscribe messaging model gipatuman pinaagi sa mga tumoy. Ang topiko naghatag sa parehas nga paagi sa pagsibya sa mekanismo sa komperensya. Sa diha nga ang usa ka mensahe gipadala ngadto sa usa ka hilisgutan, kini giapod-apod para sa tanang subscribed users.

Ang mga topiko kasagaran dili kasaligan (dili masaligan). Sama sa usa ka tigpaminaw nga dili makadungog kung unsa ang gisulti sa usa ka tawag sa komperensya kung ang tigpaminaw madiskonekta, ang mga subscriber sa hilisgutan makalimtan ang bisan unsang mga mensahe nga gipadala samtang sila offline. Tungod niini nga hinungdan, makaingon kita nga ang mga hilisgutan naghatag usa ka garantiya sa pagpadala dili labaw sa kausa alang sa matag konsumidor.

Ang pag-publish-subscribe nga pagmemensa kasagarang gigamit kung ang mga mensahe kay impormasyon ug ang pagkawala sa usa ka mensahe dili kaayo mahinungdanon. Pananglitan, ang usa ka hilisgutan mahimong magpadala sa mga pagbasa sa temperatura gikan sa usa ka grupo sa mga sensor kausa matag segundo. Ang usa ka sistema nga interesado sa karon nga temperatura ug nga nag-subscribe sa usa ka hilisgutan dili mabalaka kung wala kini usa ka mensahe - ang lain moabut sa umaabot nga umaabot.

hybrid nga mga modelo

Ang website sa tindahan nagbutang sa mga mensahe sa pag-order sa usa ka "pila sa mensahe." Ang nag-unang konsumidor niini nga mga mensahe mao ang executive system. Dugang pa, ang sistema sa pag-audit kinahanglan adunay mga kopya niini nga mga mensahe sa order alang sa sunod nga pagsubay. Ang duha ka mga sistema dili makatugot sa mga mensahe nga moagi, bisan kung ang mga sistema mismo dili magamit sa pipila ka panahon. Ang website kinahanglan nga dili makahibalo sa ubang mga sistema.

Ang mga kaso sa paggamit kasagaran nagkinahanglan og kombinasyon sa publish-subscribe ug point-to-point messaging nga mga modelo, sama sa kung daghang sistema ang nanginahanglan og kopya sa usa ka mensahe ug ang kasaligan ug pagkamalahutayon gikinahanglan aron malikayan ang pagkawala sa mensahe.

Kini nga mga kaso nanginahanglan usa ka destinasyon (usa ka kinatibuk-ang termino alang sa mga pila ug mga hilisgutan) nga nag-apod-apod sa mga mensahe sa panguna ingon usa ka hilisgutan, aron ang matag mensahe ipadala sa usa ka lahi nga sistema nga interesado sa mga mensahe, apan usab diin ang matag sistema mahimong maghubit sa daghang mga konsumedor nga makadawat sa umaabot. mga mensahe, nga mas sama sa usa ka pila. Ang tipo sa pagbasa niini nga kaso mao ang kausa alang sa matag stakeholder. Kini nga mga hybrid nga destinasyon kanunay nanginahanglan kalig-on aron kung ang usa ka konsumedor mag-offline, ang mga mensahe nga gipadala nianang panahona madawat pagkahuman sa pagkonekta pag-usab sa konsumedor.

Ang hybrid nga mga modelo dili bag-o ug mahimong gamiton sa kadaghanan sa mga sistema sa pagmemensahe, lakip ang ActiveMQ (pinaagi sa virtual o composite nga mga destinasyon nga naghiusa sa mga hilisgutan ug mga pila) ug Kafka (sa dayag nga paagi, isip usa ka sukaranan nga kabtangan sa iyang destinasyon nga disenyo).

Karon nga kita adunay pipila ka mga batakang terminology ug usa ka pagsabut kung unsa ang mahimo natong gamiton sa usa ka sistema sa pagmemensahe, atong sugdan ang mga detalye.

Gihimo ang paghubad: tele.gg/middle_java

Ang mosunod nga gihubad nga bahin: Kapitulo 3. Kafka

Ipadayon…

Source: www.habr.com

Idugang sa usa ka comment