Apache Kafka

Apache Kafka apmācība

Apache Kafka apmācība
Šajā nodarbībā mēs redzēsim, kā mēs varam izmantot Apache Kafka un kāda ir tā izmantošana. Mēs rūpīgi izpētīsim dažādas ar to saistītās terminoloģijas un sāksim strādāt arī ar tām.

Apache Kafka

Augsta līmeņa definīcijai uzrādīsim īsu Apache Kafka definīciju:

Apache Kafka ir izplatīts, izturīgs pret kļūdām, horizontāli mērogojams, saistību žurnāls.

Tie bija daži augsta līmeņa vārdi par Apache Kafka. Ļaujiet mums šeit detalizēti izprast jēdzienus.

Apache Kafka tēma ir gluži kā rinda, kurā tiek glabāti ziņojumi. Šie ziņojumi tiek glabāti konfigurējamu laiku, un ziņa netiek izdzēsta līdz šī laika sasniegšanai, pat ja to ir patērējuši visi zināmie patērētāji.

Kafka ir mērogojams, jo patērētāji faktiski glabā, ka viņu ielādētais ziņojums pēdējais saglabājas kā “nobīdes” vērtība. Apskatīsim skaitli, lai to labāk saprastu:

Tēmas nodalījums un patērētāja kompensācija Apache Kafka

Darba sākšana ar Apache Kafka

Lai sāktu lietot Apache Kafka, tā jāinstalē mašīnā. Lai to izdarītu, lasiet Ubuntu sadaļā Apache Kafka instalēšana.

Pārliecinieties, ka jums ir aktīva Kafka instalācija, ja vēlaties izmēģināt piemērus, kurus mēs piedāvājam vēlāk stundā.

Kā tas darbojas?

Ar Kafku Producents publicē lietojumprogrammas ziņas kas nonāk pie Kafka Mezgls nevis tieši Patērētājam. No šī Kafka mezgla ziņojumus patērē Patērētājs lietojumprogrammas.

Kafka ražotājs un patērētājs


Tā kā viena tēma vienā piegājienā var iegūt daudz datu, lai Kafka būtu horizontāli mērogojama, katra tēma ir sadalīta starpsienas un katrs nodalījums var dzīvot jebkurā klastera mezglu mašīnā. Mēģināsim to pasniegt:

Tēmas starpsienas


Arī šoreiz Kafka Broker nereģistrē, kurš patērētājs ir patērējis cik datu paketes. Tas ir patērētāju atbildība sekot līdzi patērētajiem datiem.

Noturība pret disku

Kafka joprojām saglabā ziņojumus, ko tā saņēmusi no producentiem, diskā un neglabā tos atmiņā. Var rasties jautājums, kā tas padara lietas iespējamas un ātras? Tam bija vairāki iemesli, kas padara to par optimālu ziņojumu ierakstu pārvaldības veidu:

Datu izplatīšana un replikācija

Kā mēs iepriekš pētījām, ka tēma ir sadalīta nodalījumos, katrs ziņojumu ieraksts tiek atkārtots vairākos klastera mezglos, lai saglabātu katra ieraksta kārtību un datus, ja kāds no mezgliem nomirst.

Kaut arī nodalījums tiek atkārtots vairākos mezglos, joprojām ir nodalījuma vadītājs mezgls, caur kuru lietojumprogrammas lasa un raksta datus par tēmu, un vadītājs atkārto datus par citiem mezgliem, kurus sauc par sekotāji no šī nodalījuma.

Ja lietojumprogrammai ziņu ieraksta dati ir ļoti svarīgi, garantiju par ziņojumu ieraksta drošību vienā no mezgliem var palielināt, palielinot replikācijas koeficients klastera.

Kas ir Zookeeper?

Zookeeper ir ļoti izturīgs pret kļūdām, izplatīts atslēgas vērtību veikals. Apache Kafka ir ļoti atkarīgs no Zookeeper, lai glabātu kopu mehāniku, piemēram, sirdsdarbību, izplatītu atjauninājumus / konfigurācijas utt.).

Tas ļauj Kafka brokeriem parakstīties uz sevi un zināt, kad ir notikušas kādas izmaiņas attiecībā uz nodalījuma vadītāju un mezglu sadalījumu.

Ražotāju un patērētāju lietojumprogrammas tieši sazinās ar Zookeeper lietojumprogramma, lai uzzinātu, kurš mezgls ir tēmas nodalījuma vadītājs, lai viņi varētu lasīt un rakstīt no nodalījuma vadītāja.

Straumēšana

Straumēšanas procesors ir galvenā Kafka klastera sastāvdaļa, kas nepārtraukti paņem ziņu ierakstu datu plūsmu no ievades tēmām, apstrādā šos datus un izveido datu plūsmu līdz izvades tēmām, kas var būt jebkas, sākot no miskastes līdz datu bāzei.

Ir pilnīgi iespējams veikt vienkāršu apstrādi tieši, izmantojot ražotāja / patērētāja API, lai gan sarežģītai apstrādei, piemēram, plūsmu apvienošanai, Kafka nodrošina integrētu Streams API bibliotēku, taču, lūdzu, ņemiet vērā, ka šī API ir paredzēta lietošanai mūsu pašu koda bāzē un tā nav ” t palaist pie brokera. Tas darbojas līdzīgi patērētāja API un palīdz mums paplašināt straumes apstrādes darbu vairākās lietojumprogrammās.

Kad lietot Apache Kafka?

Kā mēs pētījām iepriekšējās sadaļās, Apache Kafka var izmantot, lai risinātu lielu skaitu ziņojumu ierakstu, kas var piederēt gandrīz bezgalīgam skaitam tēmu mūsu sistēmās.

Apache Kafka ir ideāls kandidāts, lietojot pakalpojumu, kas mums ļauj mūsu lietojumprogrammās sekot notikumu virzītai arhitektūrai. Tas ir saistīts ar datu noturības, kļūdu izturīgas un ļoti izplatītas arhitektūras iespējām, kur kritiskās lietojumprogrammas var paļauties uz tās veiktspēju.

Mērogojamā un izplatītā Kafka arhitektūra ļoti atvieglo integrāciju ar mikropakalpojumiem un ļauj lietojumprogrammai atvienoties ar lielu biznesa loģiku.

Jaunas tēmas izveide

Mēs varam izveidot testa tēmu testēšana Apache Kafka serverī ar šādu komandu:

Tēmas izveide

sudo kafka-tēmas.sh --create - zookeeper localhost: 2181 - replikācijas koeficients 1
--1. nodalījums - testa pārbaude

Lūk, ko mēs atgūsim ar šo komandu:

Izveidojiet jaunu Kafka tēmu


Tiks izveidota testēšanas tēma, kuru mēs varēsim apstiprināt ar minēto komandu:

Kafka tēmas izveides apstiprinājums

Ziņu rakstīšana par tēmu

Kā mēs pētījām iepriekš, viens no API, kas atrodas Apache Kafka, ir Ražotāja API. Mēs izmantosim šo API, lai izveidotu jaunu ziņojumu un publicētu tikko izveidotajā tēmā:

Rakstīt ziņojumu tēmai

sudo kafka-konsole-producents.sh - brokeru saraksta localhost: 9092 - topiku testēšana

Apskatīsim šīs komandas izvadi:

Publicēt ziņojumu Kafka tēmai


Kad mēs nospiedīsim taustiņu, mēs redzēsim jaunu bultiņas (>) zīmi, kas nozīmē, ka mēs tagad varam ievietot datus:

Ziņas rakstīšana


Vienkārši ierakstiet kaut ko un nospiediet, lai sāktu jaunu rindu. Es ierakstīju 3 tekstu rindas:

Tēmas ziņojumu lasīšana

Tagad, kad mēs esam publicējuši ziņojumu mūsu izveidotajā Kafka tēmā, šis ziņojums būs tur kādu laiku konfigurējams. Tagad mēs to varam izlasīt, izmantojot Patērētāja API:

Tēmas ziņojumu lasīšana

sudo kafka-konsole-patērētājs.sh - zookeeper localhost: 2181 --
tēmas pārbaude - no sākuma

Lūk, ko mēs atgūsim ar šo komandu:

Komanda izlasīt ziņojumu no Kafka tēmas


Mēs varēsim redzēt ziņojumus vai rindas, kuras esam uzrakstījuši, izmantojot Producer API, kā parādīts zemāk:

Ja mēs rakstīsim vēl vienu jaunu ziņojumu, izmantojot Producer API, tas uzreiz tiks parādīts arī patērētāja pusē:

Publicēt un Patērēt vienlaicīgi

Secinājums

Šajā nodarbībā mēs apskatījām, kā mēs sākam lietot Apache Kafka, kas ir lielisks ziņojumu starpnieks un var darboties arī kā īpaša datu noturības vienība.

Izmantojot X-Mouse Button Control, atšķirīgi mainiet peles pogas atšķirīgai programmatūrai
Varbūt jums ir nepieciešams rīks, kas varētu mainīt peles vadību ar katru lietoto lietojumprogrammu. Ja tas tā ir, varat izmēģināt lietojumprogrammu a...
Microsoft Sculpt Touch bezvadu peles apskats
Es nesen lasīju par Microsoft Sculpt Touch bezvadu pele un nolēma to nopirkt. Pēc kāda laika izmantošanas es nolēmu dalīties savā pieredzē ar to. Šo b...
AppyMouse ekrāna skārienpaliktnis un peles rādītājs Windows planšetdatoriem
Planšetdatoru lietotājiem bieži pietrūkst peles rādītāja, it īpaši, ja viņi parasti lieto klēpjdatorus. Skārienekrāna viedtālruņiem un planšetdatoriem...