Hvordan sette opp partisjonering i Apache Kafka

Hvordan sette opp partisjonering i Apache Kafka
Apache Kafka er en kraftig meldingsmeglertjeneste. Det er veldig raskt og pålitelig. Apache Kafka er åpen kildekode og gratis å bruke. Det er skrevet i Java.I denne artikkelen vil jeg vise deg hvordan du konfigurerer partisjoner i Apache Kafka. La oss komme i gang.

Grunnleggende om Apache Kafka -partisjoner:

For å forstå det grunnleggende om Apache Kafka Skilleveggs, du må vite om kafka Emne først.

EN Emne er som en database i en SQL -database som MariaDB for Apache Kafka. EN Emne har et navn eller identifikator som du bruker til å gruppere meldinger i Apache Kafka.

EN Skillevegg er som en kanal for hver Emne. EN Emne kan ha mange Skilleveggs eller kanaler.

En nettverkskabel som forbinder to datamaskiner har to ender, den ene sender data, den andre mottar data. Akkurat slik har Apache Kafka -emnet to ender, Produsents og Forbrukers. EN Produsent Oppretter meldinger, og sender dem i en av Skilleveggs av a Emne. EN Forbruker På den annen side leser meldingene fra Skilleveggs av a Emne.

Flere Skilleveggs eller kanaler er opprettet for å øke redundansen. Det brukes også til å gruppere meldinger i en spesifikk Emne.

Starter Apache Kafka Server:

Hvis du har fulgt artikkelen min for å installere Apache Kafka, så start først Apache Kafka -serveren med følgende kommando:

$ sudo kafka-server-start.sh /etc /kafka.egenskaper

Apache Kafka -serveren skal starte. Hold denne terminalen åpen så lenge du vil at Apache Kafka Server skal kjøre.

Opprette et Apache Kafka -emne:

Du kan opprette en Apache Kafka Emne testing med følgende kommando:

$ sudo kafka-emner.sh \
--skape \
--Zookeeper Localhost: 2181 \
--Replikasjonsfaktor 1 \
--Partisjoner 1 \
--Emnetesting

De Emne testing bør opprettes. Dette Emne har 1 partisjon.

Hvis du vil opprette, la oss si N partisjoner, sett deretter -partisjoner til N.

La oss lage en annen Emne, la oss si Brukere, med 3 Skilleveggs, kjør deretter følgende kommando:

$ sudo kafka-emner.sh \
--skape \
--Zookeeper Localhost: 2181 \
--Replikasjonsfaktor 1 \
--Partisjoner 3 \
--Emnebrukere

Emnebrukere skal opprettes med 3 Skilleveggs.

Legge til partisjonerte meldinger til emnet:

EN Skillevegged melding til en Emne har en nøkkel og a verdi. De nøkkel og verdi er vanligvis atskilt med en komma eller annen spesiell karakter. Det spiller ingen rolle hvilken spesiell karakter du bruker for å skille nøkkel og verdi par. Men du må bruke den samme spesielle karakteren overalt på det Emne. Ellers kan ting gå galt.

De nøkkel brukes til å bestemme hvilken Skillevegg en melding om en Emne tilhører. Det skal være unikt på en Emne. Hvis du har 3 Skilleveggs, så bør du bruke 3 annerledes nøkkels. Slik at meldingene kan deles inn i 3 Skilleveggs.

La oss si vår Brukere Emne har 3 brukere med Nøkkel 1, 2, og 3, Hver av dem tilhører en av 3 Skilleveggs av Brukere emne.

Kjør følgende kommando for å legge til den første brukeren med Nøkkel 1 bruker Kafka -produsent API:

$ ECHO "1, Navn: 'Shahriar Shovon', Country: 'Bd'" | sudo kafka-console-produsent.sh \
--Megler-liste Localhost: 9092 \
--Emnebrukere \
--Eiendomsparti.nøkkel = sant \
--Eiendomsnøkkel.separator =,

Nå kan du liste opp meldingen fra Brukere Emne bruker Kafka Consumer API med følgende kommando:

$ Sudo Kafka-Console-Consumer.sh \
--Zookeeper Localhost: 2181 \
--Emnebrukere \
--Eiendomsprint.nøkkel = sant \
--Eiendomsnøkkel.separator =, \
--fra begynnelsen

Som du kan se, nøkkel og verdi Par jeg har nettopp lagt til Brukere Emne er oppført.

Jeg skal beholde Forbruker program for Brukere Emne Åpne på denne terminalen og legg de andre brukerne til Brukere Emne fra en annen Terminal og se hva som skjer.

Legg til en annen bruker med Nøkkel 2 med følgende kommando:

$ ECHO "2, Navn: 'John Doe', Country: 'Bd'" | sudo kafka-console-produsent.sh \
--Megler-liste Localhost: 9092 \
--Emnebrukere \
--Eiendomsparti.nøkkel = sant \
--Eiendomsnøkkel.separator =,

Som du ser fra den markerte delen av skjermbildet nedenfor, er den nye brukeren oppført på forbrukerprogrammet øyeblikkelig.

La oss legge til vår siste bruker med Nøkkel 3 med følgende kommando:

$ ECHO "3, Navn: 'Evelina Aquilino', Country: 'Us'" | sudo kafka-console-produsent.sh \
--Megler-liste Localhost: 9092 \
--Emnebrukere \
--Eiendomsparti.nøkkel = sant \
--Eiendomsnøkkel.separator =,

Som du ser er den nye brukeren også oppført i Forbruker program.

Du kan også legge til mange brukere til det samme Skillevegg. Bare sørg for at nøkkel er lik.

La oss legge til en annen bruker til Skillevegg med Nøkkel 1:

$ ECHO "1, Navn: 'Lynelle Piatt', Country: 'Ca'" | sudo kafka-console-produsent.sh \
--Megler-liste Localhost: 9092 \
--Emnebrukere \
--Eiendomsparti.nøkkel = sant \
--Eiendomsnøkkel.separator =,

Som du kan se, blir den nye brukeren lagt til riktig Skillevegg av Brukere emne.

Jeg kan fortsette å legge til tilfeldige brukere til Brukere Emne Og de vil bli sendt gjennom riktig partisjon som du kan se fra skjermdumpen nedenfor.

Så det er slik SkilleveggS i Apache Kafka fungerer. Hver Skillevegg er som en , Den første meldingen du sender gjennom den partisjonen vises først, og deretter den andre meldingen og så videre i den rekkefølgen de blir sendt.

Hvis du er en Java Utvikler, du kan bruke Java programmeringsspråk og Apache Kafka Java Apis å gjøre interessante ting med Apache Kafka Skilleveggs. For eksempel kan du tilordne forskjellige Skillevegg For forskjellige chatterom for din direktemeldingsapp, da meldinger må vises på den bestillingen de blir sendt.

Så det er alt for i dag. Takk for at du leste denne artikkelen.