Apache Kafka

Kas yra „Apache Kafka“ ir kaip jis veikia?

Kas yra „Apache Kafka“ ir kaip jis veikia?

Šioje pamokoje pamatysime, kas yra „Apache Kafka“ ir kaip ji veikia kartu su keletu dažniausiai naudojamų atvejų.  „Apache Kafka“ iš pradžių buvo sukurta „LinkedIn“ 2010 m., O 2012 m. Ji tapo aukščiausio lygio „Apache“ projektu. Jį sudaro trys pagrindiniai komponentai:

Ateinančiuose skyriuose išnagrinėsime daug daugiau „Kafka“ koncepcijų. Judėkime į priekį.

Apache Kafka koncepcijos

Prieš gilindamiesi, turime išsamiai aptarti kai kurias Apache Kafka sąvokas. Štai terminai, kuriuos turėtume žinoti labai trumpai:

Temos pertvaros

Temos, temos pertvarų ir kompensavimo koncepciją taip pat galima aiškiai parodyti iliustraciniu paveikslu:

Temos skaidymas ir vartotojų kompensavimas „Apache Kafka“

„Apache Kafka“ kaip „Publish-subscribe“ susirašinėjimo sistema

Su „Kafka“ „Producer“ programos skelbia pranešimus, kurie gaunami į „Kafka“ mazgą, o ne tiesiogiai vartotojui. Iš šio „Kafka“ mazgo pranešimus vartoja „Consumer“ programos.

„Kafka“ gamintojas ir vartotojas

Kadangi viena tema vienu metu gali gauti daug duomenų, kad „Kafka“ būtų horizontaliai keičiama, kiekviena tema yra suskirstyta į pertvaros ir kiekvienas skaidinys gali gyventi bet kurioje klasterio mazgo mašinoje.

Vėlgi, „Kafka Broker“ neveda įrašų, kuris vartotojas sunaudojo kiek duomenų paketų. Tai yra vartotojų atsakomybė sekti suvartotus duomenis. Dėl to, kad „Kafka“ neseka kiekvienos vartotojų programos patvirtinimų ir pranešimų, ji gali valdyti daug daugiau vartotojų, turėdama nereikšmingą poveikį pralaidumui. Gamyboje daugelis programų netgi laikosi paketinių vartotojų modelio, o tai reiškia, kad vartotojas reguliariai vartoja visus pranešimus eilėje.

Montavimas

Norėdami pradėti naudoti „Apache Kafka“, jis turi būti įdiegtas kompiuteryje. Norėdami tai padaryti, skaitykite „Apache Kafka“ diegimas „Ubuntu“.

Naudojimo atvejis: svetainės naudojimo stebėjimas

„Kafka“ yra puikus įrankis, kurį reikia naudoti, kai turime stebėti veiklą svetainėje. Stebėjimo duomenys apima ir neapsiriboja puslapių peržiūromis, paieškomis, įkėlimais ar kitais naudotojų atliktais veiksmais. Kai vartotojas yra svetainėje, jis gali atlikti bet kokį skaičių veiksmų naršydamas svetainėje.

Pvz., Kai naujas vartotojas užsiregistruoja svetainėje, gali būti stebima veikla, kokia tvarka naujas vartotojas tiria svetainės funkcijas, jei vartotojas nustato savo profilį pagal poreikį arba nori tiesiogiai pereiti prie tinklo funkcijų. Interneto svetainė. Kai tik vartotojas spusteli mygtuką, to mygtuko metaduomenys kaupiami duomenų pakete ir siunčiami į „Kafka“ grupę, iš kurios programos analizės tarnyba gali rinkti šiuos duomenis ir pateikti naudingų įžvalgų apie susijusius duomenis. Jei norėtume užduotis suskirstyti į žingsnius, procesas atrodys taip:

  1. Vartotojas užsiregistruoja svetainėje ir patenka į informacijos suvestinę. Vartotojas bando iš karto pasiekti funkciją, naudodamas mygtuką.
  2. Žiniatinklio programa sukuria pranešimą su šiais metaduomenimis temos skaidinyje „paspaudimas“.
  3. Pranešimas pridedamas prie įsipareigojimų žurnalo, o kompensavimas didinamas
  4. Dabar vartotojas gali ištraukti „Kafka Broker“ pranešimą ir realiuoju laiku parodyti svetainės naudojimą bei parodyti buvusius duomenis, jei jis atstato savo kompensaciją į galimą praeities vertę

Naudojimo atvejis: pranešimų eilė

„Apache Kafka“ yra puikus įrankis, kuris gali pakeisti pranešimų tarpininkų įrankius, pvz., „RabbitMQ“. Asinchroniniai pranešimai padeda atsieti programas ir sukuria labai keičiamą sistemą.

Kaip ir mikropaslaugų koncepcija, užuot sukūrę vieną didelę programą, galime suskirstyti programą į kelias dalis ir kiekviena dalis turi labai konkrečią atsakomybę. Tokiu būdu skirtingos dalys gali būti parašytos ir visiškai nepriklausomomis programavimo kalbomis! „Kafka“ turi įmontuotą skaidymo, replikavimo ir atsparumo gedimams sistemą, todėl ji yra gera kaip didelio masto pranešimų tarpininkų sistema.

Pastaruoju metu „Kafka“ taip pat vertinamas kaip labai geras žurnalų rinkimo sprendimas, kuris gali valdyti žurnalų failų rinkimo serverio brokerį ir pateikti šiuos failus į centrinę sistemą. Su „Kafka“ galima sugeneruoti bet kokį įvykį, apie kurį norėtumėte žinoti apie bet kurią kitą jūsų programos dalį.

„Kafka“ naudojimas „LinkedIn“

Įdomu pažymėti, kad „Apache Kafka“ anksčiau buvo vertinama ir naudojama kaip būdas, kuriuo duomenų vamzdynai gali būti nuoseklūs ir per kuriuos duomenys buvo įkelti į „Hadoop“. „Kafka“ dirbo puikiai, kai buvo keli duomenų šaltiniai ir paskirties vietos, o kiekvienam šaltinio ir paskirties deriniui nebuvo įmanoma pateikti atskiro proceso. „LinkedIn“ „Kafka“ architektas Jay Krepsas tinklaraščio įraše gerai apibūdina šią pažįstamą problemą:

Mano pačių dalyvavimas šiame procese prasidėjo maždaug 2008 m., Kai mes pristatėme savo pagrindinių vertybių parduotuvę. Kitas mano projektas buvo pabandyti pradėti veikti „Hadoop“ sąranką ir perkelti ten kai kuriuos mūsų rekomendacijų procesus. Turėdami mažai patirties šioje srityje, mes natūraliai paskyrėme kelias savaites duomenims gauti ir išgauti, o likusį laiką - išgalvotų prognozavimo algoritmų įgyvendinimui. Taigi prasidėjo ilgas šūkis.

Apache Kafka ir Flume

Jei persikelsite palyginti šiuos du pagal jų funkcijas, rasite daug bendrų bruožų. Štai keletas jų:

Išvada

Šioje pamokoje apžvelgėme daugybę sąvokų apie Apache Kafka. Skaitykite daugiau „Kafka“ pranešimų čia.

„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...
„SuperTuxKart“, skirta „Linux“
„SuperTuxKart“ yra puikus pavadinimas, sukurtas nemokamai suteikti „Mario Kart“ patirtį jūsų „Linux“ sistemoje. Tai gana sudėtinga ir smagu žaisti, yr...
„Battle for Wesnoth“ pamoka
„Battle for Wesnoth“ yra vienas populiariausių atvirojo kodo strateginių žaidimų, kurį šiuo metu galite žaisti. Šis žaidimas ne tik buvo kuriamas laba...