logo

Subiecte Kafka

În secțiunea anterioară, am făcut o scurtă introducere despre Apache Kafka, sistemul de mesagerie, precum și procesul de streaming. Aici, vom discuta despre conceptele de bază și rolul lui Kafka.

Subiecte

În general, un subiect se referă la un anumit titlu sau la un nume dat unor idei specifice interdependente. În Kafka, cuvântul subiect se referă la o categorie sau un nume comun folosit pentru a stoca și a publica un anumit flux de date. Practic, subiectele din Kafka sunt similare cu tabelele din baza de date, dar nu conțin toate constrângerile. În Kafka, putem crea n număr de subiecte după cum ne dorim. Este identificat după numele său, care depinde de alegerea utilizatorului. Un producător publică date despre subiecte, iar un consumator citește acele date din subiect prin abonarea acestuia.

Paravane

Un subiect este împărțit în mai multe părți care sunt cunoscute sub numele de partiții ale subiectului. Aceste partiții sunt separate într-o ordine. Conținutul datelor este stocat în partițiile din cadrul subiectului. Prin urmare, în timpul creării unui subiect, trebuie să specificăm numărul de partiții (numărul este arbitrar și poate fi schimbat ulterior). Fiecare mesaj este stocat în partiții cu un ID incremental cunoscut sub numele de valoarea Offset. Ordinea lui valoarea offset este garantat numai în cadrul partiției și nu în întreaga partiție. Decalajele pentru o partiție sunt infinite.

Notă:Datele odată scrise pe o partiție nu pot fi niciodată modificate. Este imuabil. Valoarea offset rămâne întotdeauna într-o stare incrementală, nu se întoarce niciodată la un spațiu gol. De asemenea, datele sunt păstrate într-o partiție doar pentru o perioadă limitată de timp.

Să vedem un exemplu pentru a înțelege un subiect cu partițiile sale.

Subiecte Kafka

Să presupunem că un subiect care conține trei partiții 0,1 și 2. Fiecare partiție are numere de offset diferite. Datele sunt distribuite între fiecare offset din fiecare partiție, unde datele din offset-ul 1 al Partiției 0 nu au nicio relație cu datele din offset-ul 1 al Partiției1. Dar, datele din offset-ul 1 al Partiției 0 sunt inter-relatate cu datele conținute în offset-ul 2 al Partiției0.

Brokerii

Aici vine rolul lui Apache Kafka.

Un cluster Kafka este format din unul sau mai multe servere cunoscute ca brokeri sau brokeri Kafka. Un broker este un container care deține mai multe subiecte cu partițiile lor multiple. Brokerii din cluster sunt identificați numai printr-un ID întreg. Brokerii Kafka sunt cunoscuți și ca Brokeri Bootstrap deoarece conexiunea cu orice broker înseamnă conexiune cu întregul cluster. Deși un broker nu conține date întregi, fiecare broker din cluster știe despre toți ceilalți brokeri, partiții, precum și subiecte.

Subiecte Kafka

Așa arată un broker în figura care conține un subiect cu n număr de partiții.

Exemplu: Brokeri și subiecte

Să presupunem că un cluster Kafka format din trei brokeri, și anume Broker 1, Broker 2 și Broker 3.

Subiecte Kafka

Fiecare broker deține un subiect, și anume Topic-x cu trei partiții 0,1 și 2. Rețineți, toate partițiile nu aparțin unui singur broker, acesta este întotdeauna distribuit între fiecare broker (depinde de cantitate). Broker 1 și Broker 2 conțin un alt subiect-y având două partiții 0 și 1. Astfel, Broker 3 nu deține date din Topic-y. De asemenea, se concluzionează că nu există vreo relație între numărul brokerului și numărul partiției.