U prethodnom smo odjeljku ukratko predstavili Apache Kafku, sustav slanja poruka, kao i proces strujanja. Ovdje ćemo raspravljati o osnovnim pojmovima i ulozi Kafke.
teme
Općenito, tema se odnosi na određeni naslov ili naziv dat nekim određenim međusobno povezanim idejama. Kod Kafke se riječ tema odnosi na kategoriju ili zajednički naziv koji se koristi za pohranjivanje i objavljivanje određenog toka podataka. U osnovi, teme u Kafki su slične tablicama u bazi podataka, ali ne sadrže sva ograničenja. U Kafki možemo stvoriti n broj tema koliko želimo. Prepoznaje se imenom koje ovisi o izboru korisnika. Proizvođač objavljuje podatke u temama, a potrošač čita te podatke iz teme pretplatom.
Pregrade
Tema je podijeljena u nekoliko dijelova koji su poznati kao particije teme. Ove su particije odvojene redom. Sadržaj podataka pohranjuje se u particije unutar teme. Stoga, prilikom kreiranja teme, moramo odrediti broj particija (broj je proizvoljan i može se kasnije promijeniti). Svaka se poruka pohranjuje u particije s inkrementalnim ID-om poznatim kao njezina vrijednost pomaka. Redoslijed vrijednost pomaka je zajamčeno samo unutar particije, a ne preko particije. Pomaci za particiju su beskonačni.
Bilješka:Podaci koji su jednom upisani na particiju više se ne mogu promijeniti. To je nepromjenjivo. Vrijednost pomaka uvijek ostaje u inkrementalnom stanju, nikada se ne vraća na prazan prostor. Također, podaci se čuvaju u particiji samo ograničeno vrijeme.
Pogledajmo primjer za razumijevanje teme s njezinim particijama.
Pretpostavimo da tema sadrži tri particije 0,1 i 2. Svaka particija ima različite brojeve pomaka. Podaci se distribuiraju između svakog pomaka u svakoj particiji gdje podaci u pomaku 1 particije 0 nemaju nikakvu vezu s podacima u pomaku 1 particije 1. No, podaci u pomaku 1 particije 0 međusobno su povezani s podacima sadržanim u pomaku 2 particije 0.
Brokeri
Evo, dolazi uloga Apača Kafke.
Kafka klaster se sastoji od jednog ili više poslužitelja koji su poznati kao brokeri ili Kafka brokeri. Broker je spremnik koji sadrži nekoliko tema s njihovim višestrukim particijama. Brokeri u klasteru identificirani su samo cijelim ID-om. Kafka brokeri su također poznati kao Bootstrap brokeri jer povezivanje s bilo kojim brokerom znači povezivanje s cijelim klasterom. Iako broker ne sadrži cijele podatke, ali svaki broker u klasteru zna za sve ostale brokere, particije kao i teme.
Ovako broker izgleda na slici koja sadrži topic s n brojem particija.
Primjer: brokeri i teme
Pretpostavimo da se Kafka klaster sastoji od tri brokera, odnosno brokera 1, brokera 2 i brokera 3.
Svaki broker drži temu, točnije Topic-x s tri particije 0,1 i 2. Upamtite, sve particije ne pripadaju samo jednom brokeru, uvijek se raspodjeljuje na svakog brokera (ovisi o količini). Broker 1 i Broker 2 sadrže još jednu temu-y koja ima dvije particije 0 i 1. Stoga Broker 3 ne drži nikakve podatke iz Topic-y. Također se zaključuje da nikada ne postoji nikakva veza između brokerskog broja i particionog broja.