Apache Kafka

Vadnica Apača Kafke

Vadnica Apača Kafke
V tej lekciji bomo videli, kako lahko uporabljamo Apache Kafka in kakšna je njegova uporaba. Podrobno bomo preučili različne terminologije, povezane z njo, in začeli delati tudi z njimi.

Apache Kafka

Za definicijo na visoki ravni predstavimo kratko definicijo Apacheja Kafke:

Apache Kafka je razdeljen dnevnik oddaj, odporen na napake, vodoravno prilagodljiv.

To je bilo nekaj besed na visoki ravni o Apacheju Kafki. Tukaj podrobno razumemo koncepte.

Tema v Apache Kafki je tako kot vrsta, v kateri so shranjena sporočila. Ta sporočila se shranijo nastavljivo dolgo in sporočilo se ne izbriše, dokler se ta čas ne doseže, tudi če so ga porabili vsi znani potrošniki.

Kafka je prilagodljiv, saj potrošniki tisti, ki dejansko shranijo, tisto sporočilo, ki so ga nazadnje prenesli kot vrednost "odmika". Poglejmo si sliko, da to bolje razumemo:

Delitev teme in odmik potrošnikov v Apache Kafka

Uvod v Apache Kafka

Če želite začeti uporabljati Apache Kafka, ga morate namestiti na stroj. Če želite to narediti, preberite Namesti Apache Kafka v Ubuntu.

Poskrbite, da imate aktivno namestitev Kafke, če želite preizkusiti primere, ki jih predstavljamo kasneje v lekciji.

Kako deluje?

S Kafko, Producent aplikacije objavijo sporočila ki prispe na Kafko Vozlišče in ne neposredno potrošniku. V tem vozlišču Kafka sporočila porabi Potrošnik aplikacij.

Kafka proizvajalec in potrošnik


Ker lahko ena tema naenkrat dobi veliko podatkov, da bo Kafka vodoravno prilagodljiv, je vsaka tema razdeljena na predelne stene in vsaka particija lahko živi na katerem koli vozlišču v gruči. Poskusimo to predstaviti:

Tematske particije


Ponovno Kafka Broker ne vodi evidence, kateri potrošnik je porabil koliko paketov podatkov. Je odgovornost potrošnikov za evidentiranje podatkov, ki jih je porabila.

Vztrajnost na disku

Kafka vztraja na zapisih sporočil, ki jih dobi od proizvajalcev na disku, in jih ne hrani v pomnilniku. Vprašanje, ki se lahko pojavi, je, kako to naredi stvari izvedljive in hitre? Za tem je bilo več razlogov, zaradi katerih je optimalen način upravljanja zapisov sporočil:

Porazdelitev in kopiranje podatkov

Kot smo zgoraj preučevali, da je tema razdeljena na particije, se vsak zapis sporočila replicira na več vozlišč gruče, da se ohrani vrstni red in podatki vsakega zapisa, če eno od vozlišč umre.

Čeprav je particija podvojena na več vozliščih, še vedno obstaja vodja razdelitve vozlišče, prek katerega aplikacije berejo in zapisujejo podatke o temi, vodja pa podvaja podatke o drugih vozliščih, ki se imenujejo sledilci te particije.

Če so podatki o zapisu sporočila zelo pomembni za aplikacijo, lahko zagotovite, da je zapis sporočila varen v enem od vozlišč, tako da povečate faktor replikacije grozda.

Kaj je Zookeeper?

Zookeeper je zelo odporen na distribuirano shrambo ključ-vrednost. Apache Kafka je močno odvisen od Zookeeperja, da shrani mehaniko grozdov, kot je srčni utrip, distribucija posodobitev / konfiguracij itd.).

Posrednikom Kafka omogoča, da se naročijo na sebe in vedo, kadar koli se zgodi kakšna sprememba glede vodje particije in distribucije vozlišč.

Aplikacije proizvajalcev in potrošnikov neposredno komunicirajo z Zookeeperjem aplikacija, da ve, katero vozlišče je vodja particije za temo, tako da lahko izvajajo branje in pisanje iz vodje particije.

Pretakanje

Procesor pretoka je glavna komponenta v gruči Kafka, ki neprekinjeno prenaša podatke zapisov sporočil iz vhodnih tem, jih obdeluje in ustvarja tok podatkov za izhod teme, ki so lahko kar koli, od smeti do baze podatkov.

Popolnoma je mogoče izvesti preprosto obdelavo neposredno z API-ji proizvajalca / potrošnika, čeprav za kompleksno obdelavo, kot je kombiniranje tokov, Kafka ponuja integrirano knjižnico Streams API, vendar upoštevajte, da je ta API namenjen uporabi v naši lastni bazi kod in ne ne deluje na posrednika. Deluje podobno kot potrošniški API in nam pomaga razširiti obdelavo tokov v več aplikacijah.

Kdaj uporabiti Apache Kafka?

Kot smo preučevali v zgornjih odsekih, lahko Apache Kafka uporabljamo za obravnavo velikega števila zapisov sporočil, ki lahko spadajo v tako rekoč neskončno število tem v naših sistemih.

Apache Kafka je idealen kandidat za uporabo storitve, ki nam omogoča, da v svojih aplikacijah sledimo arhitekturi, ki jo vodijo dogodki. To je posledica njegovih zmožnosti obstojnosti podatkov, odporne na napake in zelo porazdeljene arhitekture, kjer se kritične aplikacije lahko zanesejo na njegovo delovanje.

Prilagodljiva in porazdeljena arhitektura Kafke omogoča zelo enostavno integracijo z mikro storitvami in omogoča, da se aplikacija loči z veliko poslovne logike.

Ustvarjanje nove teme

Ustvarimo lahko testno temo testiranje na strežniku Apache Kafka z naslednjim ukazom:

Ustvari temo

sudo kafka-teme.sh --create --zookeeper localhost: 2181 - faktor replikacije 1
--particije 1 - tematsko testiranje

Tukaj dobimo s tem ukazom:

Ustvari novo Kafkino temo


Nastala bo testna tema, ki jo lahko potrdimo z omenjenim ukazom:

Potrditev ustvarjanja teme Kafka

Pisanje sporočil na temo

Kot smo že preučevali, je eden od API-jev, ki je prisoten v Apache Kafki, API proizvajalca. Ta API bomo uporabili za ustvarjanje novega sporočila in objavo v temi, ki smo jo pravkar ustvarili:

Pisanje sporočila v temo

sudo kafka-producent konzole.sh --broker-list localhost: 9092 - testiranje tem

Poglejmo izhod za ta ukaz:

Objavi sporočilo Kafki Topic


Ko pritisnemo tipko, bomo videli novo puščico (>), kar pomeni, da lahko zdaj vnašamo podatke:

Tipkanje sporočila


Samo vnesite nekaj in pritisnite, da začnete novo vrstico. Vtipkal sem 3 vrstice besedil:

Branje sporočil iz teme

Zdaj, ko smo objavili sporočilo o temi Kafka, ki smo jo ustvarili, bo to sporočilo nekaj časa nastavljivo. Zdaj ga lahko preberemo s pomočjo Potrošniški API:

Branje sporočil iz teme

sudo kafka-konzola-potrošnik.sh --zookeeper lokalni gostitelj: 2181 --
preizkušanje teme - od začetka

Tukaj dobimo s tem ukazom:

Ukaz za branje sporočila Kafke Topic


Sporočila ali vrstice, ki smo jih napisali, si bomo lahko ogledali z API-jem proizvajalca, kot je prikazano spodaj:

Če z API-jem proizvajalca napišemo novo sporočilo, se bo takoj prikazalo tudi na strani Potrošnik:

Objavite in porabite hkrati

Zaključek

V tej lekciji smo si ogledali, kako začnemo uporabljati Apache Kafka, ki je odličen posrednik sporočil in lahko deluje tudi kot posebna enota za obstoj podatkov.

Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...
Najboljše aplikacije za preslikavo gamepadov za Linux
Če želite igre na Linuxu igrati z igralno ploščico namesto s tipičnim sistemom za vnos tipkovnice in miške, je za vas na voljo nekaj uporabnih aplikac...