logo

Kafka-emner

I forrige avsnitt har vi tatt en kort introduksjon om Apache Kafka, meldingssystem, samt strømmeprosessen. Her vil vi diskutere de grunnleggende konseptene og rollen til Kafka.

Emner

Generelt refererer et emne til en bestemt overskrift eller et navn gitt til noen spesifikke innbyrdes relaterte ideer. I Kafka refererer ordet emne til en kategori eller et vanlig navn som brukes til å lagre og publisere en bestemt strøm av data. I utgangspunktet ligner emner i Kafka på tabeller i databasen, men inneholder ikke alle begrensninger. I Kafka kan vi lage n antall emner som vi vil. Den identifiseres med navnet, som avhenger av brukerens valg. En produsent publiserer data til emnene, og en forbruker leser disse dataene fra emnet ved å abonnere på det.

Skillevegger

Et emne er delt inn i flere deler som er kjent som partisjonene til emnet. Disse partisjonene er atskilt i en rekkefølge. Datainnholdet blir lagret i partisjonene i emnet. Derfor, mens vi lager et emne, må vi spesifisere antall partisjoner (tallet er vilkårlig og kan endres senere). Hver melding blir lagret i partisjoner med en inkrementell id kjent som offset-verdien. Rekkefølgen på offset verdi er garantert kun innenfor partisjonen og ikke på tvers av partisjonen. Forskyvningene for en partisjon er uendelige.

Merk:Dataene som først er skrevet til en partisjon kan aldri endres. Den er uforanderlig. Offsetverdien forblir alltid i en inkrementell tilstand, den går aldri tilbake til et tomt rom. Dataene lagres også i en partisjon kun i en begrenset periode.

La oss se et eksempel for å forstå et emne med dets partisjoner.

Kafka-emner

Anta at et emne inneholder tre partisjoner 0,1 og 2. Hver partisjon har forskjellige offsetnummer. Dataene fordeles mellom hver offset i hver partisjon der data i offset 1 av partisjon 0 ikke har noen relasjon med dataene i offset 1 av partisjon1. Men data i offset 1 av partisjon 0 er relatert til dataene i offset 2 av partisjon0.

Meglere

Her kommer rollen som Apache Kafka.

En Kafka-klynge består av en eller flere servere som er kjent som meglere eller Kafka-meglere. En megler er en beholder som inneholder flere emner med sine flere partisjoner. Meglerne i klyngen identifiseres kun med en heltalls-ID. Kafka meglere er også kjent som Bootstrap meglere fordi forbindelse med en megler betyr forbindelse med hele klyngen. Selv om en megler ikke inneholder hele data, men hver megler i klyngen vet om alle andre meglere, partisjoner så vel som emner.

Kafka-emner

Slik ser en megler ut i figuren som inneholder et emne med n antall partisjoner.

Eksempel: Meglere og emner

Anta, en Kafka-klynge bestående av tre meglere, nemlig megler 1, megler 2 og megler 3.

Kafka-emner

Hver megler holder et emne, nemlig Topic-x med tre partisjoner 0,1 og 2. Husk, alle partisjoner tilhører ikke kun en megler, den er alltid fordelt på hver megler (avhenger av mengden). Broker 1 og Broker 2 inneholder en annen topic-y med to partisjoner 0 og 1. Broker 3 har derfor ingen data fra Topic-y. Det konkluderes også med at det aldri eksisterer noen sammenheng mellom meglernummeret og partisjonsnummeret.