Apache Kafka

Hva er Apache Kafka og hvordan fungerer det?

Hva er Apache Kafka og hvordan fungerer det?

I denne leksjonen vil vi se hva som er Apache Kafka, og hvordan fungerer det sammen med noen av de vanligste brukssakene.  Apache Kafka ble opprinnelig utviklet på LinkedIn i 2010 og flyttet til å bli et topp-nivå Apache-prosjekt i 2012. Den har tre hovedkomponenter:

Vi vil studere mange flere Kafka-konsepter i kommende seksjoner. La oss gå videre.

Apache Kafka-konsepter

Før vi graver dypere, må vi være grundige om noen konsepter i Apache Kafka. Her er vilkårene vi burde vite, veldig kort:

Emnepartisjoner

Konseptet for emne, emnepartisjoner og offset kan også gjøres tydelig med en illustrerende figur:

Emnedeling og forbrukerforskyvning i Apache Kafka

Apache Kafka som meldingssystem for publiser abonnement

Med Kafka publiserer produsentapplikasjonene meldinger som kommer til en Kafka-node og ikke direkte til en forbruker. Fra denne Kafka-noden konsumeres meldinger av forbrukerapplikasjonene.

Kafka produsent og forbruker

Ettersom et enkelt emne kan få mye data på en gang, for å holde Kafka horisontalt skalerbar, er hvert emne delt inn i skillevegger og hver partisjon kan leve på hvilken som helst node-maskin i en klynge.

Igjen holder Kafka Broker ikke oversikt over hvilken forbruker som har konsumert hvor mange pakker med data. Det er den forbrukernes ansvar for å holde oversikt over data den har brukt. På grunn av at Kafka ikke holder rede på bekreftelser og meldinger fra hver enkelt forbrukerapplikasjon, kan den håndtere mange flere forbrukere med ubetydelig innvirkning på gjennomstrømningen. I produksjonen følger mange applikasjoner til og med et mønster av batchforbrukere, noe som betyr at en forbruker konsumerer alle meldingene i en kø med jevne mellomrom.

Installasjon

For å begynne å bruke Apache Kafka, må den være installert på maskinen. For å gjøre dette, les Installer Apache Kafka på Ubuntu.

Brukssak: Sporing av bruk av nettsteder

Kafka er et utmerket verktøy som skal brukes når vi trenger å spore aktivitet på et nettsted. Sporingsdataene inkluderer og er ikke begrenset til sidevisninger, søk, opplastinger eller andre handlinger brukerne kan utføre. Når en bruker er på et nettsted, kan brukeren ta et hvilket som helst antall handlinger når han / hun surfer gjennom nettstedet.

For eksempel når en ny bruker registrerer seg på et nettsted, kan aktiviteten spores i hvilken rekkefølge utforsker en ny bruker funksjonene til et nettsted, hvis brukeren angir profilen etter behov eller foretrekker å hoppe direkte til funksjonene i nettsted. Når brukeren klikker på en knapp, samles metadataene for den knappen i en datapakke og sendes til Kafka-klyngen hvorfra analysetjenesten for applikasjonen kan samle inn disse dataene og gi nyttig innsikt i de relaterte dataene. Hvis vi ønsker å dele oppgavene i trinn, er det hvordan prosessen vil se ut:

  1. En bruker registrerer seg på et nettsted og går inn i dashbordet. Brukeren prøver å få tilgang til en funksjon med en gang ved å samhandle med en knapp.
  2. Nettapplikasjonen konstruerer en melding med denne metadata til en emnepartisjon av emnet "klikk".
  3. Meldingen legges til kommitteringsloggen og forskyvningen økes
  4. Forbrukeren kan nå hente meldingen fra Kafka Megler og vise bruk av nettsteder i sanntid og vise tidligere data hvis den tilbakestiller offset til en mulig tidligere verdi

Bruk sak: Meldingskø

Apache Kafka er et utmerket verktøy som kan fungere som erstatning for meldingsmeglerverktøy som RabbitMQ. Asynkrone meldinger hjelper til med å koble fra applikasjonene og skaper et svært skalerbart system.

Akkurat som begrepet mikrotjenester, i stedet for å bygge en stor applikasjon, kan vi dele opp applikasjonen i flere deler, og hver del har et veldig spesifikt ansvar. På denne måten kan de forskjellige delene også skrives på helt uavhengige programmeringsspråk! Kafka har innebygd partisjonerings-, replikasjons- og feiltoleransesystem som gjør det bra som et stort meldingsmeglersystem.

Nylig er Kafka også sett på som en veldig god løsning for loggsamling som kan administrere megler for loggfilsamling og gi disse filene til et sentralt system. Med Kafka er det mulig å generere en hvilken som helst hendelse du vil at andre deler av applikasjonen din skal vite om.

Bruker Kafka på LinkedIn

Det er interessant å merke seg at Apache Kafka tidligere ble sett på og brukt som en måte som datarørledninger kunne gjøres konsistente og gjennom hvilke data ble inntatt i Hadoop. Kafka fungerte utmerket når flere datakilder og destinasjoner var til stede, og det var ikke mulig å gi en egen rørprosess for hver kombinasjon av kilde og destinasjon. LinkedIn's Kafka-arkitekt, Jay Kreps, beskriver dette kjente problemet godt i et blogginnlegg:

Mitt eget engasjement i dette startet rundt 2008 etter at vi hadde sendt nøkkelverdibutikken vår. Mitt neste prosjekt var å prøve å få et fungerende Hadoop-oppsett i gang, og flytte noen av våre anbefalingsprosesser dit. Med liten erfaring på dette området, budsjetterte vi naturlig nok noen uker for å få inn og ut data, og resten av tiden vår for å implementere fancy prediksjonsalgoritmer. Så begynte et langt slag.

Apache Kafka og Flume

Hvis du flytter ut for å sammenligne disse to på grunnlag av funksjonene deres, finner du mange vanlige funksjoner. Her er noen av dem:

Konklusjon

I denne leksjonen så vi på mange konsepter om Apache Kafka. Les flere Kafka-baserte innlegg her.

Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...
Mus Midterste museknapp fungerer ikke i Windows 10
Midterste museknapp fungerer ikke i Windows 10
De midtre museknapp hjelper deg med å bla gjennom lange websider og skjermer med mye data. Hvis det stopper, vil du ende opp med å bruke tastaturet ti...