Capisce i broker di messagi. Amparate a meccanica di messageria cù ActiveMQ è Kafka. Capitulu 1

Bonghjornu ognunu!

Cuminciò à traduce un picculu libru:
«Capisce i brokers di messagi",
autore: Jakub Korab, editore: O'Reilly Media, Inc., data di pubblicazione: ghjugnu 2017, ISBN: 9781492049296.

Da l'introduzione à u libru:
"... Stu libru vi insegnerà cumu pensà à i sistemi di messageria intermediate paragunendu è cuntrastanti dui tecnulugia di brokering populari: Apache ActiveMQ è Apache Kafka. Delinearà i casi d'usu è l'incentivi di sviluppu chì anu purtatu i so sviluppatori à piglià approcci assai diversi à a listessa zona di messageria di sistema à sistema. Fighjeremu queste tecnulugii da a terra è mette in risaltu l'impattu di e diverse scelte di design in a strada. Puderete acquistà una cunniscenza prufonda di i dui prudutti, una capiscitura di cumu si deve è ùn deve esse micca utilizatu, è una cunniscenza di ciò chì deve esse attentu quandu cunsiderà altre tecnulugia di messageria in u futuru. ... "

Parti tradutte finu à avà:
Capitulu 1 Introduzione
Capitulu 3. Kafka

Puderaghju i capituli cumpleti mentre sò tradutti.

CAPITOLU 1

Introduzione

A messageria intersistema hè unu di i zoni di l'IT menu capitu. Cum'è sviluppatore o architettu, pudete esse assai familiarizatu cù diversi frameworks è basa di dati. In ogni casu, hè prubabile chì avete solu un ochju di cumu funziona e tecnulugia di messageria basata in broker. S'ellu hè cusì chì vi sentite, ùn vi preoccupate, site in bona cumpagnia.

A ghjente hà di solitu un cuntattu assai limitatu cù l'infrastruttura di messageria. Spessu si cunnetta à un sistema creatu assai tempu fà, o scaricate un kit di distribuzione da Internet, installate in PROM è cumincianu à scrive codice per questu. Una volta chì l'infrastruttura hè in funziunamentu in PROM, i risultati ponu esse mischiati: i missaghji sò persi nantu à i crashes, i mandati ùn funzionanu micca cum'è l'aspettate, o i brokers impiccà i vostri pruduttori o ùn mandanu micca missaghji à i vostri cunsumatori.

Sona familiar?

Un scenariu cumuni induve u vostru codice di messageria funziona bè, per u mumentu. Finu à chì ferma di travaglià. Stu piriu lulls vigilance è dà un falsu sensu di sicurità, chì porta à ancu più codice basatu nantu à idee falsi nantu à u cumpurtamentu fundamentale di a tecnulugia. Quandu e cose cumincianu à sbaglià, avete affruntatu una verità scomoda: chì ùn avete micca veramente capitu u cumportamentu sottostanti di u pruduttu, o i scambii scelti da l'autori, cum'è u rendiment versus robustezza, o transazzione vs. scalabilità horizontale.

Senza una cunniscenza prufonda di u funziunamentu di i brokers, e persone facenu affirmazioni apparentemente ragiunate nantu à i so sistemi di messageria, cum'è:

  • U sistema ùn perderà mai i missaghji
  • I missaghji seranu processati in sequenza
  • L'aghjunzione di i cunsumatori farà u sistema più veloce
  • I missaghji seranu mandati solu una volta

Sfurtunatamente, certi di sti dichjarazioni sò basati nantu à supposizioni chì s'applicanu solu in certi circustanze, mentri àutri ùn sò micca veri.

Stu libru vi insegnerà cumu ragiunà nantu à i sistemi di messageria intermediate paragunendu è cuntrastanti dui tecnulugia di broker populari: Apache ActiveMQ è Apache Kafka. Delinearà i casi d'usu è l'incentivi di sviluppu chì anu purtatu i so sviluppatori à piglià approcci assai diversi à a stessa zona di messageria intermediata trà i sistemi. Fighjeremu queste tecnulugii da a terra è mette in risaltu l'impattu di e diverse scelte di design in a strada. Puderete acquistà una cunniscenza prufonda di i dui prudutti, una capiscitura di cumu si deve è ùn deve esse micca utilizatu, è una cunniscenza di ciò chì deve esse attentu quandu cunsiderà altre tecnulugia di messageria in u futuru.

Prima di principià, andemu nantu à i principii.

Chì ghjè un sistema di messageria è perchè hè necessariu

Per chì duie applicazioni cumunicanu cù l'altri, anu da definisce prima una interfaccia. A definizione di sta interfaccia include l'scelta di un trasportu o protokollu cum'è HTTP, MQTT, o SMTP, è a negoziazione di i formati di missaghju chì i sistemi scambiaranu. Questu pò esse un prucessu strettu, cum'è a definizione di un schema XML cù esigenze di costu di carica per un messagiu, o pò esse assai menu formale, cum'è un accordu trà dui sviluppatori chì una parte di una dumanda HTTP cuntene un identificatore di cliente.

Sempre chì u formatu di i missaghji è l'ordine in quale sò mandati sò cunsistenti trà i sistemi, puderanu cumunicà cù l'altri senza preoccupari di l'implementazione di l'altru sistema. L'internu di questi sistemi, cum'è a lingua di prugrammazione o u quadru utilizatu, pò cambià cù u tempu. Mentre u cuntrattu stessu hè mantinutu, l'interazzione pò cuntinuà senza cambià da l'altra parte. I dui sistemi sò effettivamente disaccoppiati (separati) da questa interfaccia.

I sistemi di messageria generalmente implicanu un intermediariu trà dui sistemi chì interagiscenu per disaccoppà (separate) più u mittente da u destinatariu o destinatari. In questu casu, u sistema di messageria permette à u mittente di mandà un missaghju senza sapè induve si trova u destinatariu, s'ellu hè attivu o quanti di i so casi.

Fighjemu un paru d'analogie per i tipi di prublemi chì un sistema di messageria risolve è intruduce qualchi termini basi.

Puntu à puntu

Alexandra va à l'uffiziu postale per mandà un pacchettu à Adam. Va à a finestra è dà u pacchettu à l'impiigatu. L'impiigatu piglia u pacchettu è dà à Alexandra una ricevuta. Adam ùn hà micca bisognu à esse in casa quandu u pacchettu hè mandatu. Alexandra hè cunvinta chì u pacchettu serà consegnatu à Adam in un certu puntu in u futuru è pò cuntinuà à fà a so attività. In seguitu, in un certu puntu, Adam riceve un pacchettu.

Questu hè un esempiu di un mudellu di messageria puntu à puntu. L'uffiziu postale quì agisce cum'è un mecanismu di distribuzione di pacchetti, assicurendu chì ogni pacchettu hè mandatu una volta. L'usu di l'uffiziu postale separa l'attu di mandà u pacchettu da a consegna di u pacchettu.
In i sistemi di messageria classica, u mudellu puntu à puntu hè implementatu attraversu fila. A fila agisce cum'è un buffer FIFO (first in, first out) chì unu o più cunsumatori ponu abbonate. Ogni missaghju hè mandatu solu unu di i cunsumatori abbonati. I fili di solitu pruvate di distribuisce i missaghji in modu ghjustu trà i cunsumatori. Solu un cunsumadore riceve stu missaghju.

U terminu "durabile" hè appiicatu à a fila. Affidabilità hè una pruprietà di serviziu chì guarantisci chì u sistema di messageria mantene i missaghji in l'absenza di abbonati attivi finu à chì u cunsumadore abbona à a fila di messagiu di messagiu.

L'affidabilità hè spessu cunfusa persistenza è, ancu s'è i dui termini sò intercambiabili, facenu funzioni diverse. A persistenza determina se un missaghju hè scrittu da u sistema di messageria à un certu tipu di almacenamentu trà u ricivutu è l'invià à u cunsumadore. I missaghji mandati à a fila pò esse persistenti o micca.
A messageria puntu à puntu hè usata quandu un casu d'usu richiede una sola azzione nantu à un missaghju. L'esempii includenu dipositu di fondi in un contu o cumpiendu un ordine di consegna. Discuteremu più tardi perchè un sistema di messageria da ellu stessu hè incapace di furnisce una consegna una volta è perchè e file ponu à u megliu furnisce una garanzia di consegna. almenu una volta.

Editore-Abbonatu

Gabriella chjama u numeru di cunferenza. Mentre ch'ella hè cunnessa à a cunferenza, sente tuttu ciò chì dice u parlante, cù u restu di i participanti di a chjama. Quandu si scura, manca ciò chì si dice. Quandu si ricollega, ella cuntinueghja à sente ciò chì si dice.

Questu hè un esempiu di un mudellu di messageria pubblicà-subscribe. A chjama di cunferenza agisce cum'è un mecanismu di trasmissione. A persona chì parla ùn importa micca quante persone sò attualmente in a chjama - u sistema assicura chì qualchissia chì hè attualmente cunnessu senterà ciò chì si dice.
In i sistemi di messageria classica, u mudellu di messageria publicazione-abbonatu hè implementatu attraversu cime. Un tema furnisce u stessu metudu di trasmissione cum'è u mecanismu di cunferenza. Quandu un missaghju hè publicatu à un tema, hè distribuitu per tutti l'utilizatori abbonati.

I temi di solitu inaffidabile (non durable). Cum'è un ascoltatore chì ùn pò micca sente ciò chì si dice in una teleconferenza, quandu l'ascoltatore passa in linea, l'abbonati di u tema mancanu ogni messagiu chì sò mandati mentre sò offline. Per quessa, pudemu dì chì e cime furnisce una guaranzia di consegna. micca più di una volta per ogni cunsumadore.

A messageria Publish-Subscribe hè tipicamente utilizata quandu i missaghji sò informativi in ​​natura è a perdita di un missaghju unicu ùn hè micca particularmente significativu. Per esempiu, un tema pò trasmette lettura di temperatura da un gruppu di sensori una volta per seconda. Un sistema chì hè interessatu à a temperatura attuale è chì sottumette à un tema ùn si preoccupa micca s'ellu manca un missaghju - un altru ghjunghjerà prestu.

mudelli hibridi

U situ web di a tenda mette i missaghji di ordine in una "coda di messagi". U cunsumadore principali di sti missaghji hè u sistema esecutivu. Inoltre, u sistema di auditu deve avè copie di sti messagi d'ordine per un seguimentu dopu. I dui sistemi ùn ponu micca missu i missaghji, ancu s'è i sistemi stessi ùn sò micca dispunibili per qualchì tempu. U situ web ùn deve esse cunnisciutu di altri sistemi.

I casi d'usu spessu necessitanu una mistura di mudelli di messageria publish-subscribe è point-to-point, cum'è quandu parechji sistemi necessitanu una copia di un missaghju è l'affidabilità è a persistenza sò necessarie per prevene a perdita di messagiu.

In questi casi, hè necessariu un destinazione (termine generale per fila è temi), chì distribuisce i missaghji in fondu cum'è un tema, perchè ogni missaghju hè mandatu à un sistema separatu interessatu in questi missaghji, ma ancu in quale ogni sistema pò definisce parechji cunsumatori. chì riceve missaghji ricevuti, chì hè più cum'è una fila. U tipu di lettura in questu casu hè - una volta per ogni stakeholder. Questi destinazioni hibridi spessu necessitanu durabilità per quessa chì, se un cunsumadore disconnette, i missaghji chì sò mandati à quellu tempu sò accettati quandu u cunsumadore riconnette.

I mudelli ibridi ùn sò micca novi è ponu esse appiicati à a maiò parte di i sistemi di messageria, cumprese ActiveMQ (via destinazioni virtuale o composti chì combina temi è fila) è Kafka (implicitamente, cum'è una pruprietà fundamentale di u so designu di destinazione).

Avà chì avemu una terminologia basica è una cunniscenza di ciò chì un sistema di messageria puderia esse utile, entremu in i dettagli.

Traduzzione fatta: tele.gg/middle_java

Prossima parte tradutta: Capitulu 3. Kafka

Per esse continuatu ...

Source: www.habr.com

Add a comment