logo

Kafkas tēmas

Iepriekšējā sadaļā mēs esam veikuši īsu ievadu par Apache Kafka, ziņojumapmaiņas sistēmu, kā arī straumēšanas procesu. Šeit mēs apspriedīsim pamatjēdzienus un Kafkas lomu.

Tēmas

Parasti tēma attiecas uz noteiktu virsrakstu vai nosaukumu, kas piešķirts dažām konkrētām savstarpēji saistītām idejām. Kafkas valodā vārds tēma attiecas uz kategoriju vai vispārpieņemtu nosaukumu, ko izmanto noteiktas datu plūsmas glabāšanai un publicēšanai. Būtībā Kafkas tēmas ir līdzīgas tabulām datubāzē, taču tajās nav ietverti visi ierobežojumi. Kafkā mēs varam izveidot n skaitu tēmu, cik vēlamies. To identificē pēc tā nosaukuma, kas ir atkarīgs no lietotāja izvēles. Ražotājs publicē datus par tēmām, un patērētājs nolasa šos datus no tēmas, to abonējot.

Starpsienas

Tēma ir sadalīta vairākās daļās, kuras sauc par tēmas nodalījumiem. Šīs starpsienas ir atdalītas secībā. Datu saturs tiek saglabāts tēmas nodalījumos. Tāpēc, veidojot tēmu, mums ir jānorāda nodalījumu skaits (skaits ir patvaļīgs, un to var mainīt vēlāk). Katrs ziņojums tiek saglabāts nodalījumos ar pieaugošu ID, kas pazīstams kā tā nobīdes vērtība. Pasūtījums kompensācijas vērtība tiek garantēta tikai nodalījumā, nevis visā nodalījumā. Sadalījuma nobīdes ir bezgalīgas.

Piezīme:Datus, kas reiz ierakstīti nodalījumā, nekad nevar mainīt. Tas ir nemainīgs. Nobīdes vērtība vienmēr paliek pieaugošā stāvoklī, tā nekad neatgriežas tukšā vietā. Turklāt dati tiek glabāti nodalījumā tikai ierobežotu laiku.

Apskatīsim piemēru, lai saprastu tēmu ar tās nodalījumiem.

Kafkas tēmas

Pieņemsim, ka tēma satur trīs nodalījumus 0,1 un 2. Katram nodalījumam ir dažādi nobīdes skaitļi. Dati tiek sadalīti pa katru nobīdi katrā nodalījumā, kur 0. nodalījuma 1. nobīdes datiem nav nekādas saistības ar 1. nodalījuma 1. nobīdes datiem. Taču dati 0. nodalījuma 1. nobīdē ir savstarpēji saistīti ar datiem, kas ietverti 0. nodalījuma 2. nobīdē.

Brokeri

Šeit nāk Apache Kafka loma.

Kafka klasteris sastāv no viena vai vairākiem serveriem, kas ir pazīstami kā brokeri vai Kafka brokeri. Brokeris ir konteiners, kurā ir vairākas tēmas ar to vairākiem nodalījumiem. Klastera brokeri tiek identificēti tikai ar vesela skaitļa ID. Kafka brokeri ir pazīstami arī kā Bootstrap brokeri jo savienojums ar jebkuru brokeri nozīmē savienojumu ar visu klasteru. Lai gan brokeris nesatur veselus datus, taču katrs klastera brokeris zina par visiem pārējiem brokeriem, nodalījumiem, kā arī tēmām.

Kafkas tēmas

Šādi izskatās brokeris attēlā, kurā ir tēma ar n skaitu nodalījumu.

Piemērs: brokeri un tēmas

Pieņemsim, ka Kafka klasteris sastāv no trim brokeriem, proti, Broker 1, Broker 2 un Broker 3.

Kafkas tēmas

Katram brokerim ir tēma, proti, Topic-x ar trim nodalījumiem 0,1 un 2. Atcerieties, ka visas sadaļas nepieder tikai vienam brokerim, tā vienmēr tiek sadalīta starp katru brokeri (atkarībā no daudzuma). Starpnieks 1 un starpnieks 2 satur vēl vienu tēmu-y ar diviem nodalījumiem 0 un 1. Tādējādi brokerim 3 nav datu no tēmas-y. Tiek arī secināts, ka starp brokera numuru un nodalījuma numuru nekad nepastāv nekāda saistība.