Apache Kafka

Hvordan sette opp partisjonering i Apache Kafka

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

Grunnleggende om Apache Kafka-partisjoner:

Å forstå det grunnleggende om Apache Kafka Skilleveggs, du trenger å 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 en 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 Topic to ender, Produsents og Forbrukers. EN Produsent oppretter meldinger, og sender dem i en av Skilleveggs av en Emne. EN Forbruker derimot leser meldingene fra Skilleveggs av en Emne.

Flere Skilleveggs eller kanaler opprettes for å øke redundansen. Den brukes også til å gruppere meldinger i en bestemt Emne.

Det er det grunnleggende i Apache Kafka Skilleveggs. Du kan lære mer om Apache Kafka-partisjoner på en annen dedikert artikkel Apache Kafka Partisjonering på https: // linuxhint.com / apache-kafka-partisjonering

Installere Apache Kafka:

Jeg har en dedikert detaljert artikkel om hvordan Installer Apache Kafka på Ubuntu, som du kan lese på https: // linuxhint.no / install-apache-kafka-ubuntu /

Med litt finjusteringer kan du også installere Apache Kafka på andre Linux-distribusjoner.

Starter Apache Kafka Server:

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

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

Apache Kafka-serveren skal starte. Hold denne terminalen åpen så lenge du vil at Apache Kafka-serveren 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 \
--dyrehage lokal vert: 2181 \
--replikasjonsfaktor 1 \
--partisjoner 1 \
--emnetesting

De Emne testing skal opprettes. Dette Emne har 1 partisjon.

La oss si hvis du vil lage N partisjoner, og sett deretter -skillevegger til N.

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

$ sudo kafka-emner.sh \
--skape \
--dyrehage lokal vert: 2181 \
--replikasjonsfaktor 1 \
--partisjoner 3 \
--tema brukere

Emne brukere skal opprettes med 3 Skilleveggs.

Legge til partisjonerte meldinger i emnet:

EN Skillevegged melding om en Emne har en nøkkel og en 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 tast 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 tast 1 bruker API for Kafka Producer:

$ echo "1, name: 'Shahriar Shovon', land: 'BD'" | sudo kafka-konsoll-produsent.sh \
--meglerliste localhost: 9092 \
--emne brukere \
--eiendomsanalyse.nøkkel = sann \
--eiendomsnøkkel.skilletegn =,

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

$ sudo kafka-konsoll-forbruker.sh \
--dyrehage lokal vert: 2181 \
--emne brukere \
--eiendom utskrift.nøkkel = sann \
--eiendomsnøkkel.skilletegn =, \
--fra begynnelsen

Som du kan se, er nøkkel og verdi par jeg nettopp la til i brukere Emne er oppført.

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

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

$ echo "2, name: 'John Doe', country: 'BD'" | sudo kafka-konsoll-produsent.sh \
--meglerliste localhost: 9092 \
--emne brukere \
--eiendomsanalyse.nøkkel = sann \
--eiendomsnøkkel.skilletegn =,

Som du kan se fra den merkede delen av skjermbildet nedenfor, blir den nye brukeren oppført på forbrukerprogrammet umiddelbart.

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

$ echo "3, name: 'Evelina Aquilino', land: 'US'" | sudo kafka-konsoll-produsent.sh \
--meglerliste localhost: 9092 \
--emne brukere \
--eiendomsanalyse.nøkkel = sann \
--eiendomsnøkkel.skilletegn =,

Som du kan se, er den nye brukeren også oppført i Forbruker program.

Du kan også legge til mange brukere i det samme Skillevegg. Bare vær sikker på at nøkkel er lik.

La oss legge til en annen bruker i Skillevegg med tast 1:

$ echo "1, name: 'Lynelle Piatt', country: 'CA'" | sudo kafka-konsoll-produsent.sh \
--meglerliste localhost: 9092 \
--emne brukere \
--eiendomsanalyse.nøkkel = sann \
--eiendomsnøkkel.skilletegn =,

Som du kan se, blir den nye brukeren lagt til i riktig Skillevegg av brukere Emne.

Jeg kan fortsette å legge tilfeldige brukere til brukere Emne og de vil bli sendt gjennom riktig partisjon som du kan se fra skjermbildet 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 rekkefølgen de sendes.

Hvis du er en Java utvikler, kan du 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 direktemeldingsappen din, ettersom meldinger må vises i rekkefølgen de sendes.

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

Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...
0 A.D. Opplæringen
Ut av de mange strategispillene der ute, 0 A.D. klarer å skille seg ut som en omfattende tittel og et veldig dypt, taktisk spill til tross for å være ...
Unity3D opplæring
Introduksjon til Unity 3D Unity 3D er en kraftig spillutviklingsmotor. Det er kryssplattform, det er det lar deg lage spill for mobil, web, stasjonær ...