Apache Kafka

RabbitMQ vs Apache Kafka

RabbitMQ vs Apache Kafka
Selles postituses püüame võrrelda ja tuvastada mõningaid erinevusi kahe populaarseima sõnumivahendaja, RabbitMQ ja Apache Kafka vahel.

Alati, kui soovime integreerida sõnumivahendajad oma rakendusse, mis võimaldab meil hõlpsalt skaalata ja oma süsteemi asünkroonselt ühendada, on palju sõnumivahendajaid, kes saavad koostada loendi, mille hulgast olete valinud, näiteks:

Kõigil nendel sõnumivahendajatel on oma plusside ja miinuste loend, kuid kõige keerukamad võimalused on kaks esimest, RabbitMQ ja Apache Kafka. Selles õppetükis loetleme punktid, mis aitavad kitsendada otsust üksteisega üle minna. Lõpuks tasub märkida, et ükski neist pole kõigil kasutusjuhtumitel parem kui teine ​​ja see sõltub täielikult sellest, mida soovite saavutada, nii et pole ühte õiget vastust!

Alustame nende tööriistade lihtsast tutvustamisest.

Apache Kafka

Nagu me selles õppetükis ütlesime, on Apache Kafka hajutatud, rikketaluv, horisontaalselt skaleeritav, kohustuslik logi. See tähendab, et Kafka suudab jaotuse ja reegli mõistet väga hästi teha, see võib teie andmeid käideldavuse tagamiseks kopeerida ja on väga skaleeritav selles mõttes, et saate uute serverite käitamise ajal lisada, et suurendada selle suutlikkust rohkemate sõnumite haldamiseks.

Kafka tootja ja tarbija

JänesMQ

RabbitMQ on üldotstarbelisem ja lihtsam kasutada sõnumivahendajat, kes ise hoiab arvestust selle üle, milliseid kirju klient on tarbinud, ja hoiab teist kinni. Isegi kui RabbitMQ server mingil põhjusel laguneb, võite olla kindel, et praegu järjekordades olevad sõnumid on failisüsteemi salvestatud, nii et kui RabbitMQ uuesti üles tuleb, saavad tarbijad neid kirju järjekindlalt töödelda.

RabbitMQ töötab

Suurriik: Apache Kafka

Kafka peamine suurriik on see, et seda saab kasutada järjekorrasüsteemina, kuid see ei piirdu. Kafka on midagi sarnast ümmargune puhver mis suudab klastris skaalal tõusta nii palju kui masinas olev ketas ja võimaldab meil sõnumeid uuesti lugeda. Seda saab klient teha ilma, et peaks sõltuma Kafka klastrist, kuna kliendi kohustus on praegu loetavate sõnumite metaandmed üles märkida ja ta saab Kafkat uuesti kindla intervalliga uuesti külastada, et sama sõnumit uuesti lugeda.

Pange tähele, et selle kirja uuesti lugemise aeg on piiratud ja seda saab konfigureerida Kafka konfiguratsioonis. Niisiis, kui see aeg on läbi, ei saa klient enam kunagi vanemat sõnumit lugeda.

Suurriik: JänesMQ

RabbitMQ peamine supervõime on see, et see on lihtsalt skaleeritav, on suure jõudlusega järjekorrasüsteem, millel on väga täpselt määratletud järjepidevuse reeglid ja võime luua mitut tüüpi sõnumivahetusmudeleid. Näiteks saate RabbitMQ-s luua kolme tüüpi vahetust:

  1. Otsevahetus: üks ühele teemavahetus
  2. Teemavahetus: A teema on määratletud, kus erinevad tootjad saavad sõnumit avaldada ja erinevad tarbijad saavad end siduda seda teemat kuulama, nii et igaüks neist saab sellele teemale saadetud sõnumi.
  3. Fanouti vahetus: see on teemavahetusest rangem, sest kui sõnum avaldatakse fanouti vahetuses, saavad sõnumi kõik tarbijad, kes on seotud järjekordadega, mis seovad end fanouti vahetusega.

Juba märkasid erinevust RabbitMQ ja Kafka vahel? Erinevus seisneb selles, et kui tarbija ei ole sõnumi avaldamise ajal ühendatud RabbitMQ-s asuva ventilaatorivahetusega, läheb see kaotsi, kuna teised tarbijad on seda teadet tarbinud, kuid seda ei juhtu Apache Kafkas, kuna iga tarbija saab lugeda ühtegi sõnumit as nad hoiavad oma kursorit.

RabbitMQ on maaklerikeskne

Hea maakler on keegi, kes garanteerib enda tehtud töö ja just selles RabbitMQ on hea. See on kallutatud suunas tarnetagatised tootjate ja tarbijate vahel, eelistades püsivaid sõnumeid pigem ajutiselt.

RabbitMQ kasutab sõnumi oleku haldamiseks maaklerit ennast ja veendub, et iga sõnum edastatakse igale õigustatud tarbijale.

RabbitMQ eeldab, et tarbijad on enamasti veebis.

Kafka on tootjakeskne

Apache Kafka on tootjakeskne, kuna see põhineb täielikult jagamisel ja andmeid sisaldavate sündmuste pakettide voogul ning nende muutmisel kursoritega püsivateks sõnumivahendajateks, toetades pakettreisijatest tarbijaid, kes võivad olla võrguühenduseta, või võrgutarbijaid, kes soovivad sõnumeid väikese viivitusega.

Kafka hoolitseb selle eest, et sõnum oleks kindla aja jooksul ohutu, kopeerides sõnumi oma klastri sõlmedes ja säilitades järjepideva oleku.

Niisiis, Kafka ei tee eeldame, et keegi tema tarbijatest on enamasti veebis ja ta ei hooli sellest.

Sõnumi tellimine

RabbitMQ-ga tellimus kirjastamist hallatakse järjepidevalt ja tarbijad saavad sõnumi avaldatud tellimuses ise. Teiselt poolt Kafka seda ei tee, kuna eeldab, et avaldatud sõnumid on oma olemuselt rasked, nii et tarbijad on aeglased ja saavad sõnumeid saata mis tahes järjekorras, nii et ta ei halda tellimust ka omaette. Kuigi saame Kafkas tellimuse haldamiseks luua sarnase topoloogia, kasutades järjepidev räsivahetus või killustava pistikprogrammi., või isegi rohkem erinevaid topoloogiaid.

Apache Kafka hallatav täielik ülesanne on toimida „amortisaatorina” pideva sündmuste voo ja tarbijate vahel, kellest mõned on võrgus ja teised võivad olla võrguühenduseta - ainult partii tarbimine tunnis või isegi päevas.

Järeldus

Selles tunnis uurisime Apache Kafka ja RabbitMQ peamisi erinevusi (ja ka sarnasusi). Mõnes keskkonnas on mõlemad näidanud erakordset jõudlust, näiteks RabbitMQ kulutab miljoneid sõnumeid sekundis ja Kafka on kulutanud mitu miljonit sõnumit sekundis. Peamine arhitektuuriline erinevus seisneb selles, et RabbitMQ haldab oma sõnumeid peaaegu mälus ja seega kasutab suurt klastrit (üle 30 sõlme), samas kui Kafka kasutab tegelikult järjestikuste ketta sisend- / väljundoperatsioonide võimeid ja nõuab vähem riistvara.

Jällegi sõltub igaühe kasutamine ikkagi täielikult rakenduses kasutatavast juhtumist. Head sõnumite saatmist !

SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...
Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...
0 A.D. Õpetus
Paljudest strateegiamängudest on 0 A.D. suudab silma paista põhjaliku tiitli ja väga sügava taktikalise mänguna, hoolimata sellest, et see on avatud l...