Verstoen Message Courtiere. Léiert d'Mechanik vu Messagerie mat ActiveMQ a Kafka. Kapitel 1

Hallo jiddereen!

Ech hunn ugefaang e klengt Buch ze iwwersetzen:
«Message Brokers verstoen"
Auteur: Jakub Korab, Verlag: O'Reilly Media, Inc., Verëffentlechungsdatum: Juni 2017, ISBN: 9781492049296.

Vun der Aféierung zum Buch:
"... Dëst Buch léiert Iech wéi Dir iwwer Broker Messagerie Systemer denkt, zwee populär Broker Technologien vergläicht a kontrastéiert: Apache ActiveMQ an Apache Kafka. Et wäert d'Benotzungsfäll an d'Entwécklungsincentives skizzéieren, déi hir Entwéckler gefouert hunn fir ganz ënnerschiddlech Approche fir datselwecht Gebitt ze huelen - Messagen tëscht Systemer mat engem Zwëschebroker. Mir kucken dës Technologien aus dem Buedem an ënnersträichen den Impakt vu verschiddenen Designwahlen um Wee. Dir kritt en déiwe Verständnis vu béide Produkter, e Verständnis vu wéi se sollen a sollten net benotzt ginn, an e Verständnis vu wat Dir sicht wann Dir aner Messagerietechnologien an der Zukunft berücksichtegt ... ”

Deeler bis elo iwwersat:
Kapitel 1. Aféierung
Kapitel 3. Kafka

Ech posten fäerdeg Kapitelen wéi se iwwersat sinn.

CHAPTER 1

Aféierung

System-zu-System Messagerie ass ee vun de mannst verständleche Beräicher vun IT. Als Entwéckler oder Architekt sidd Dir vläicht ganz vertraut mat verschiddene Kaderen an Datenbanken. Wéi och ëmmer, et ass méiglech datt Dir nëmmen e passéierte Vertraut hutt mat wéi Broker-baséiert Messagerie Technologien funktionnéieren. Wann Dir Iech esou fillt, maach der keng Suergen, Dir sidd a gudder Gesellschaft.

Leit hunn typesch ganz limitéiert Kontakt mat der Messagerie Infrastruktur. Si verbannen dacks mat engem System, dee viru laanger Zäit erstallt gouf, oder download eng Verdeelung vum Internet, installéiere se am PROM a fänkt u Code dofir ze schreiwen. Nodeems Dir d'Infrastruktur am PROM leeft, kënnen d'Resultater gemëscht ginn: Messagen ginn duerch Feeler verluer, d'Sendung funktionnéiert net wéi Dir erwaart hutt, oder Broker "hänken" Är Produzenten oder schéckt keng Messagen un Är Konsumenten.

Kléngt vertraut?

E gemeinsame Szenario ass wou Äre Messagerie Code fir de Moment super funktionnéiert. Bis et ophält ze schaffen. Dës Period lulls engem d'Wuecht an engem falschen Sënn vu Sécherheet, féiert zu méi Code baséiert op falschen Iwwerzeegungen iwwert d'fundamental Verhalen vun der Technologie. Wann d'Saachen ufänke falsch ze goen, sidd Dir mat enger onbequem Wourecht konfrontéiert: datt Dir net wierklech d'Basisdaten Verhalen vum Produkt verstanen hutt oder d'Ofdreiwungen, déi vun den Autoren gewielt goufen, wéi Leeschtung versus Zouverlässegkeet, oder Transaktiounsfäegkeet versus horizontaler Skalierbarkeet .

Ouni en déif Verständnis vu wéi Broker funktionnéieren, maachen d'Leit anscheinend raisonnabel Aussoen iwwer hir Messageriesystemer, sou wéi:

  • De System wäert ni Messagen verléieren
  • Messagen ginn sequenziell veraarbecht
  • Konsumenten derbäisetzen wäert de System méi séier maachen
  • Messagen ginn nëmmen eemol geliwwert

Leider baséieren e puer vun dësen Aussoen op Viraussetzungen déi nëmmen ënner bestëmmten Ëmstänn gëllen, anerer sinn einfach falsch.

Dëst Buch léiert Iech wéi Dir iwwer Broker-baséiert Messageriesystemer denkt, zwee populär Broker Technologien ze vergläichen an ze kontrastéieren: Apache ActiveMQ an Apache Kafka. Et wäert d'Benotzungsfäll an d'Entwécklungsincentives skizzéieren, déi hir Entwéckler gefouert hunn fir ganz ënnerschiddlech Approche fir datselwecht Gebitt ze huelen - Messagen tëscht Systemer mat engem Zwëschebroker. Mir kucken dës Technologien aus dem Buedem an ënnersträichen den Impakt vu verschiddenen Designwahlen um Wee. Dir kritt en déiwe Verständnis vu béide Produkter, e Verständnis wéi se sollen a sollten net benotzt ginn, an e Verständnis vu wat Dir sollt kucken wann Dir aner Messagerietechnologien an Zukunft berücksichtegt.

Ier mer ufänken, loosst eis iwwer d'Grondlage goen.

Wat ass e Messagerie System a firwat ass et néideg?

Fir datt zwou Applikatiounen matenee kommunizéieren, musse se als éischt eng Interface definéieren. Dës Interface ze definéieren beinhalt d'Auswiel vun engem Transport oder Protokoll, wéi HTTP, MQTT oder SMTP, a Verhandlunge vun de Messageformater déi tëscht de Systemer ausgetauscht ginn. Dëst kann e strikte Prozess sinn, sou wéi d'Definitioun vun engem XML Schema mat Message Notzlaascht Käschten Ufuerderunge, oder et kann vill manner formell sinn, sou wéi en Accord tëscht zwee Entwéckler datt en Deel vun der HTTP Ufro de Client Identifizéierer enthält.

Soulaang d'Format vun de Messagen an d'Uerdnung an där se geschéckt ginn konsequent tëscht Systemer sinn, kënne si matenee kommunizéieren ouni sech iwwer d'Ëmsetzung vum anere System ze këmmeren. D'Internal vun dëse Systemer, sou wéi d'Programméierungssprooch oder de Kader benotzt, kënne mat der Zäit änneren. Soulaang de Kontrakt selwer erhale bleift, kann d'Interaktioun ouni Ännerungen vun der anerer Säit weidergoen. Déi zwee Systemer sinn effektiv entkoppelt (getrennt) vun dëser Interface.

Messageriesystemer involvéieren typesch en Tëschestatioun tëscht zwee Systemer déi interagéieren fir de Sender vum Empfänger oder Empfänger weider ze decoupéieren (trennen). An dësem Fall erlaabt de Messagerie System dem Sender e Message ze schécken ouni ze wëssen wou den Empfänger ass, ob hien aktiv ass oder wéi vill Instanzen et ginn.

Loosst eis e puer Analogie kucken fir d'Aarte vu Probleemer déi e Messageriesystem léist an e puer grondleeënd Begrëffer aféieren.

Punkt-zu-Punkt

D'Alexandra geet op d'Post fir dem Adam e Pak ze schécken. Si geet op d'Fënster an iwwerreecht dem Employé de Pak. Den Employé hëlt de Pak op a gëtt dem Alexandra eng Quittung. Den Adam brauch net doheem ze sinn wann de Pak geschéckt gëtt. D'Alexandra ass zouversiichtlech datt de Package irgendwann an der Zukunft dem Adam geliwwert gëtt a weider mat hirem Geschäft ka goen. Spéider iergendwann kritt den Adam e Pak.

Dëst ass e Beispill vun engem Messagerie Modell Punkt-zu-Punkt. D'Post funktionnéiert hei als Päckverdeelungsmechanismus, a suergt dofir datt all Päck eemol geliwwert gëtt. D'Benotzung vun engem Postbüro trennt den Akt fir e Package ze schécken vun der Liwwerung vum Package.
A klassesche Messageriesystemer gëtt de Punkt-zu-Punkt Modell duerch ëmgesat Schlaangen. D'Schlaang wierkt als FIFO (éischt an, éischt eraus) Puffer, deen vun engem oder méi Konsumenten abonnéiert ka ginn. All Message gëtt nëmmen geliwwert un ee vun de abonnéiert Konsumenten. Schlaangen probéieren normalerweis Messagen gerecht ënner Konsumenten ze verdeelen. Nëmmen ee Konsument kritt dëse Message.

De Begrëff "haltbar" gëtt op Schlaangen ugewannt. Zuverlässegkeet ass eng Serviceeigenschaft déi garantéiert datt de Messagerie System Messagen an der Verontreiung vun aktive Abonnente bestoe wäert, bis e Konsument sech op d'Schlaang fir Message Liwwerung abonnéiert.

Zouverlässegkeet gëtt dacks verwiesselt mat Persistenz an och wann déi zwee Begrëffer austauschbar benotzt ginn, si si verschidde Funktiounen. Persistenz bestëmmt ob de Messagerie System e Message op eng Aart vu Späichere schreift tëscht et ze kréien an et un de Konsument ze schécken. Messagen, déi an d'Schlaang geschéckt ginn, kënnen oder net persistent sinn.
Punkt-zu-Punkt Messagerie gëtt benotzt wann de Gebrauchsfall eng eemoleg Handlung op de Message erfuerdert. Beispiller enthalen d'Depositioun vu Fongen op e Kont oder d'Ausféierung vun enger Liwwerbestellung. Mir wäerte spéider diskutéieren firwat de Messagerie System eleng net fäeg ass eng eemoleg Liwwerung ze liwweren a firwat Schlaangen am beschten Liwwerungsgarantie kënne bidden op d'mannst eemol.

Verlag-Abonnent

Gabriella wielt d'Konferenznummer. Wärend si mat der Konferenz verbonnen ass, héiert hatt alles wat de Spriecher seet, zesumme mam Rescht vun den Uruff Participanten. Wann hatt ofstëmmt, verpasst hatt wat gesot gëtt. Wann se erëm verbonne sinn, héiert hatt weider wat gesot gëtt.

Dëst ass e Beispill vun engem Messagerie Modell publizéieren-abonnéieren. Konferenz Uruff wierkt als Broadcast Mechanismus. D'Persoun déi schwätzt ass egal wéi vill Leit am Moment um Uruff sinn - de System suergt dofir datt jiddereen dee momentan verbonne gëtt héiert wat gesot gëtt.
A klassesche Messageriesystemer gëtt de Verëffentlechungs-Abonnéieren Messagerie Modell ëmgesat uewen. Thema bitt déiselwecht Sendungsmethod wéi de Konferenzmechanismus. Wann e Message un en Thema geschéckt gëtt, gëtt se verdeelt fir all abonnéiert Benotzer.

Themen sinn normalerweis unreliable (net haltbar). Just wéi en Nolauschterer deen net héiere kann wat op engem Konferenzruff gesot gëtt wann de Lauschterer sech trennt, vermëssen d'Thema Abonnenten all Messagen déi geschéckt gi wärend se offline sinn. Aus dësem Grond kënne mir soen datt Themen eng Liwwerungsgarantie ubidden net méi wéi eemol fir all Konsument.

Publizéieren-abonnéieren Messagerie gëtt typesch benotzt wann d'Messagen informativ an der Natur sinn an de Verloscht vun engem Message net besonnesch bedeitend ass. Zum Beispill kann en Thema Temperaturmessungen vun enger Grupp vu Sensoren eemol pro Sekonn iwwerdroen. E System, deen un der aktueller Temperatur interesséiert ass an en Thema abonnéiert, mécht sech keng Suergen, wann en e Message verpasst - en aneren kënnt an der nächster Zukunft.

Hybrid Modeller

D'Websäit vum Geschäft placéiert Bestellungsmessagen an enger "Messageschlaang". Den Haaptkonsument vun dëse Messagen ass den Exekutivsystem. Zousätzlech soll den Auditsystem Kopien vun dësen Bestellungsmessage fir spéider Tracking hunn. Béid Systemer kënnen net erlaaben Messagen duerch ze goen, och wann d'Systemer selwer eng Zäit laang net verfügbar sinn. D'Websäit soll net vun anere Systemer bewosst sinn.

Benotzungsfäll erfuerderen dacks eng Kombinatioun vu Verëffentlechungsabonnement a Punkt-zu-Punkt Messagerie Modeller, sou wéi wann verschidde Systemer eng Kopie vun engem Message erfuerderen a béid Zouverlässegkeet a Persistenz erfuerderlech sinn fir Messageverloscht ze vermeiden.

Dës Fäll erfuerderen eng Destinatioun (en allgemenge Begrëff fir Schlaangen an Themen) déi Messagen am Fong als Thema verdeelt, sou datt all Message un e separate System geschéckt gëtt, deen un dës Messagen interesséiert ass, awer och an deem all System verschidde Konsumenten definéiere kann, déi Entréeën kréien Messagen, wat méi wéi eng Schlaang ass. D'Liesentyp an dësem Fall ass eemol fir all Akteuren. Dës Hybrid Destinatiounen erfuerderen dacks Haltbarkeet, sou datt wann e Konsument offline geet, Messagen, déi zu där Zäit geschéckt ginn, kritt ginn nodeems de Konsument erëm ugeschloss ass.

Hybrid Modeller sinn net nei a kënnen an de meeschte Messageriesystemer benotzt ginn, dorënner ActiveMQ (iwwer virtuell oder komposit Destinatiounen déi Themen a Schlaangen kombinéieren) a Kafka (implizit, als fundamental Eegeschafte vu sengem Destinatiounsdesign).

Elo datt mir e puer grondleeënd Terminologie hunn an e Verständnis vu wat mir e Messageriesystem benotze kënnen, loosst eis op d'Detailer erofgoen.

Iwwersetzung gemaach: tele.gg/middle_java

Déi folgend iwwersat Deel: Kapitel 3. Kafka

Fir weidergitt ...

Source: will.com

Setzt e Commentaire