logo

Kafka ämnen

I föregående avsnitt har vi tagit en kort introduktion om Apache Kafka, meddelandesystem, samt streamingprocessen. Här kommer vi att diskutera de grundläggande begreppen och Kafkas roll.

Ämnen

I allmänhet hänvisar ett ämne till en viss rubrik eller ett namn som ges till vissa specifika inbördes relaterade idéer. I Kafka hänvisar ordet ämne till en kategori eller ett vanligt namn som används för att lagra och publicera en viss dataström. I grund och botten liknar ämnen i Kafka tabeller i databasen, men innehåller inte alla begränsningar. I Kafka kan vi skapa ett antal ämnen som vi vill. Den identifieras med sitt namn, vilket beror på användarens val. En producent publicerar data för ämnena och en konsument läser dessa data från ämnet genom att prenumerera på det.

Skiljeväggar

Ett ämne är uppdelat i flera delar som kallas ämnets partitioner. Dessa partitioner separeras i en ordning. Datainnehållet lagras i partitionerna inom ämnet. Därför måste vi, när vi skapar ett ämne, ange antalet partitioner (numret är godtyckligt och kan ändras senare). Varje meddelande lagras i partitioner med ett inkrementellt id som kallas dess offsetvärde. Ordningen på offsetvärde garanteras endast inom partitionen och inte över partitionen. Förskjutningarna för en partition är oändliga.

Notera:Data som en gång skrivits till en partition kan aldrig ändras. Det är oföränderligt. Offsetvärdet förblir alltid i ett inkrementellt tillstånd, det går aldrig tillbaka till ett tomt utrymme. Dessutom lagras data i en partition endast under en begränsad tid.

Låt oss se ett exempel för att förstå ett ämne med dess partitioner.

Kafka ämnen

Antag att ett ämne innehåller tre partitioner 0,1 och 2. Varje partition har olika offsetnummer. Datan fördelas mellan varje offset i varje partition där data i offset 1 i partition 0 inte har någon relation med data i offset 1 av partition1. Men data i offset 1 av partition 0 är sammankopplade med data som finns i offset 2 av partition0.

Mäklare

Här kommer rollen som Apache Kafka.

Ett Kafka-kluster består av en eller flera servrar som är kända som mäklare eller Kafka-mäklare. En mäklare är en behållare som innehåller flera ämnen med sina flera partitioner. Mäklarna i klustret identifieras endast med ett heltals-id. Kafka mäklare är också kända som Bootstrap mäklare eftersom anslutning till en mäklare betyder anslutning till hela klustret. Även om en mäklare inte innehåller hela data, men varje mäklare i klustret känner till alla andra mäklare, partitioner såväl som ämnen.

Kafka ämnen

Så här ser en mäklare ut i figuren som innehåller ett ämne med n antal partitioner.

Exempel: Mäklare och ämnen

Antag, ett Kafka-kluster som består av tre mäklare, nämligen Broker 1, Broker 2 och Broker 3.

Kafka ämnen

Varje mäklare håller ett ämne, nämligen Topic-x med tre partitioner 0,1 och 2. Kom ihåg att alla partitioner inte bara tillhör en mäklare, det är alltid fördelat mellan varje mäklare (beror på kvantitet). Mäklare 1 och Mäklare 2 innehåller en annan topic-y som har två partitioner 0 och 1. Således innehåller Broker 3 ingen data från Topic-y. Det dras också slutsatsen att det aldrig existerar något samband mellan mäklarnumret och partitionsnumret.