Apache Kafka

Så här ställer du in partitionering i Apache Kafka

Så här ställer du in partitionering i Apache Kafka
Apache Kafka är en kraftfull tjänst för meddelarmäklare. Det är mycket snabbt och pålitligt. Apache Kafka är öppen källkod och gratis att använda. Det är skrivet på Java.I den här artikeln visar jag dig hur du konfigurerar partitioner i Apache Kafka. Låt oss börja.

Grunderna i Apache Kafka-partitioner:

Att förstå grunderna i Apache Kafka Delas, du behöver veta om Kafka Ämne först.

A Ämne är som en databas i en SQL-databas som MariaDB för Apache Kafka. A Ämne har ett namn eller en identifierare som du använder för att gruppera meddelanden i Apache Kafka.

A Dela är som en kanal för varje Ämne. A Ämne kan ha många Delas eller kanaler.

En nätverkskabel som ansluter två datorer har två ändar, den ena skickar data, den andra tar emot data. Precis så har Apache Kafka Topic två ändar, Producents och Konsuments. A Producent skapar meddelanden och skickar dem i ett av Delas av en Ämne. A Konsument å andra sidan läser meddelanden från Delas av en Ämne.

Flera olika Delas eller kanaler skapas för att öka redundansen. Det används också för att gruppera meddelanden i en specifik Ämne.

Det är grunderna i Apache Kafka Delas. Du kan lära dig mer om Apache Kafka-partitioner i en annan dedikerad artikel Apache Kafka partitionering på https: // linuxhint.com / apache-kafka-partitionering

Installera Apache Kafka:

Jag har en dedikerad detaljerad artikel om hur Installera Apache Kafka på Ubuntu, som du kan läsa på https: // linuxhint.com / install-apache-kafka-ubuntu /

Med lite tweaks kan du också installera Apache Kafka på andra Linux-distributioner.

Starta Apache Kafka Server:

Om du har följt min artikel för att installera Apache Kafka, starta först Apache Kafka-servern med följande kommando:

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

Apache Kafka-servern bör starta. Håll terminalen öppen så länge du vill att Apache Kafka-servern ska köras.

Skapa ett Apache Kafka-ämne:

Du kan skapa en Apache Kafka Ämne testning med följande kommando:

$ sudo kafka-ämnen.sh \
--skapa \
--zookeeper localhost: 2181 \
--replikeringsfaktor 1 \
--partitioner 1 \
--ämnetestning

De Ämne testning bör skapas. Detta Ämne har en partition.

Om du vill skapa, låt oss säga N partitioner och ställ sedan in -partitioner till N.

Låt oss skapa en annan Ämne, låt oss säga användare, med 3 Delas, kör sedan följande kommando:

$ sudo kafka-ämnen.sh \
--skapa \
--zookeeper localhost: 2181 \
--replikeringsfaktor 1 \
--partitioner 3 \
--ämnesanvändare

Ämnesanvändare bör skapas med 3 Delas.

Lägga till partitionerade meddelanden till ämnet:

A Delaed meddelande av en Ämne har en nyckel- och en värde. De nyckel- och värde separeras vanligtvis av a kommatecken eller annan speciell karaktär. Det spelar ingen roll vilken specialtecken du använder för att separera nyckel- och värde par. Men du måste använda samma specialtecken överallt på det Ämne. Annars kan det gå fel.

De nyckel- används för att bestämma vilken Dela ett meddelande om ett Ämne tillhör. Det ska vara unikt på en Ämne. Om du har 3 Delas, då ska du använda 3 annorlunda nyckel-s. Så att meddelandena kan delas in i 3 Delas.

Låt oss säga vår användare Ämne har 3 användare med knapp 1, 2, och 3, var och en av dem tillhör en av 3 Delas av användare Ämne.

Kör följande kommando för att lägga till den första användaren med knapp 1 använda API för Kafka Producer:

$ echo "1, name: 'Shahriar Shovon', land: 'BD'" | sudo kafka-konsol-producent.sh \
--mäklarlista localhost: 9092 \
--ämnesanvändare \
--fastighetsanalys.key = true \
--fastighetsnyckel.separator =,

Nu kan du lista meddelandet från användare Ämne använda Kafka Consumer API med följande kommando:

$ sudo kafka-konsol-konsument.sh \
--zookeeper localhost: 2181 \
--ämnesanvändare \
--fastighetsutskrift.key = true \
--fastighetsnyckel.separator =, \
--från början

Som du kan se nyckel- och värde par jag just lagt till i användare Ämne är listad.

Jag ska behålla Konsument program för användare Ämne öppna på denna terminal och lägg till de andra användarna i användare Ämne från en annan Terminal och se vad som händer.

Lägg till en annan användare med tangent 2 med följande kommando:

$ echo "2, name: 'John Doe', land: 'BD'" | sudo kafka-konsol-producent.sh \
--mäklarlista localhost: 9092 \
--ämnesanvändare \
--fastighetsanalys.key = true \
--fastighetsnyckel.separator =,

Som du kan se från det markerade avsnittet på skärmdumpen nedan listas den nya användaren direkt i konsumentprogrammet.

Låt oss lägga till vår senaste användare med knapp 3 med följande kommando:

$ echo "3, name: 'Evelina Aquilino', land: 'US'" | sudo kafka-konsol-producent.sh \
--mäklarlista localhost: 9092 \
--ämnesanvändare \
--fastighetsanalys.key = true \
--fastighetsnyckel.separator =,

Som du kan se är den nya användaren också listad i Konsument program.

Du kan också lägga till många användare i samma Dela. Se bara till att nyckel- är samma.

Låt oss lägga till en annan användare i Dela med knapp 1:

$ echo "1, name: 'Lynelle Piatt', land: 'CA'" | sudo kafka-konsol-producent.sh \
--mäklarlista localhost: 9092 \
--ämnesanvändare \
--fastighetsanalys.key = true \
--fastighetsnyckel.separator =,

Som du kan se läggs den nya användaren till rätt Dela av användare Ämne.

Jag kan fortsätta lägga till slumpmässiga användare i användare Ämne och de kommer att skickas genom rätt partition som du kan se på skärmdumpen nedan.

Så det är så Delas i Apache Kafka fungerar. Varje Dela är som en , det första meddelandet som du skickar genom den partitionen visas först och sedan det andra meddelandet och så vidare i den ordning de skickas.

Om du är en Java utvecklare kan du använda Java programmeringsspråk och Apache Kafka Java APIs att göra intressanta saker med Apache Kafka Delas. Du kan till exempel tilldela olika Dela för olika chattrum för din snabbmeddelandeapp eftersom meddelanden måste visas i den ordning de skickas.

Så det är allt för idag. Tack för att du läser den här artikeln.

Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...
Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...