kinesis vs rabbitmq


Vastaus 1:

Kafka ja Kinesis ovat hajautetut sitoutumalokit ja ne ovat hyödyllisiä, kun läpäisyaste on avain ja viestien lukemisen takaaminen ei ole kuningas. Ne ovat hienoja tiedon virtaamiseen, kuten esimerkiksi historiallisten hintojen virtaan. Ne takaavat viestin tallentamisen vain tietyn ajanjakson ajan. Kinesisissä se voi olla jopa 7 päivää, sitten viesti on kadonnut. Kafka voit määrittää sen jatkuvan useita vuosia, mutta sinulla on levytilan loppumisriski, jos et hallitse tallennustilaa tehokkaasti. Vertaa niitä blogin postituksessa -

Vertaillaan Apache Kafkaa, Amazon Kinesista, Microsoft Event Hubia ja Google Pub / Subia

Viestintätekniikat, kuten RabbitMQ, ovat hyödyllisiä, jos haluat taata pienemmän määrän viestejä, kuten tapahtumia, joita et halua ohittaa, kuten Trade for a Trading Platform. Ne keskittyvät varmistamaan, että kuluttajat ovat tunnustaneet viestin vastaanottamisen, ja voivat tyypillisesti tukea monimutkaisempia viestien konfiguraatioita kuin hajautetut lokitekniikat (kuten kaksivaiheiset komennot jne.).

On myös syytä huomata, että hajautetut sitoutumilokitekniikat eivät yleensä välitä asiakkaista, asiakkaat voivat lukea viestit tai eivät, lähettäjät eivät yleensä välitä, he huolehtivat vain viestin tallentamisesta hajautettuun lokiin. Joten lähettämällä viestin jatkat sitä automaattisesti.


Vastaus 2:

Apache Kafka EI ole viestijonoa. Siksi tämä on ensimmäinen tärkeä selitys ennen kuin ajatellaan Kafkan (Streaming Platform) ja RabbitMQ (Message Queue) käyttötapauksia.

Kafka sisältää kolme pilaria:

  • Julkaise ja tilaa tapahtumavirtoja, kuten viestijonossa tai yrityksen viestijärjestelmässä
  • Tallenna tapahtumalähetyksiä vikasietoisella tavalla niin kauan kuin haluat (tuntia, päivää, kuukautta, ikuisesti)
  • Prosessoi tapahtumien virtauksia reaaliajassa niiden tapahtuessa

Kun nämä kolme pylvästä on rakennettu yhteen hajautettuun tapahtumien suoratoistoalustaan, voit irrottaa erilaiset mikropalvelut (ts. Tuottajat ja kuluttajat) luotettavalla, skaalautuvalla ja vikasietoisella tavalla:

Tämä erottaa tuottajan (normaalin tuotantokyvyn tai raskaan liikenteen noustessa) kuluttajista. Kuluttajat kuluttavat tiedot niin nopeasti kuin voivat tehdä - riippumatta siitä tuottavatko tuottajat enemmän tietoja kuin kuluttajat voivat käsitellä.

Kafka käsittelee vastapainetta. Voit jopa tallentaa GB-levyjä Kafkaan kuluttajan ollessa takana tai jopa alhaalla (esim. Huoltoa varten).

Päinvastoin, viestijono täyttyy nopeasti, eikä sitä ole rakennettu erilaisille erillisasiakkaille (jonossa viesti on kadonnut, kun se kulutetaan kerran).

Tarkista

Mikropalvelut, Apache Kafka ja verkkotunnusohjattu suunnittelu

saadaksesi lisätietoja järjestelmien / sovellusten / mikropalvelujen irrottamisesta Apache Kafkan avulla.

Apache Kafkan kaltaisia ​​tapahtumalähetysalustoja käytetään monissa käyttötapauksissa:

Monet organisaatiot, jotka on perustettu viimeisen 10 tai 15 vuoden aikana, hoitavat koko infrastruktuurinsa käyttämällä reaaliaikaista tapahtumien suoratoistoa, joka perustuu Apache Kafka -ekosysteemiin. Tämä tehdään usein yhdistämällä olemassa olevat viestijonoinfrastruktuurit Kafkan kanssa. Molemmat ovat toisiaan täydentäviä ja voidaan integroida erittäin hyvin toisiinsa.

Usein toisena vaiheena nykyiset viestijonot korvataan Kafkalla (esim. Lisensointisyistä Kafka-infrastruktuuri pystyy käsittelemään 10–100 kertaa enemmän viestejä välittäjää sekunnissa). Viestijärjestelmillä on kuitenkin myös käyttötapauksia. Jos tarvitset vain pienestä pisteestä tapahtuvaa tiedonsiirtoa tai XA-tapahtumia MQ: n ja relaatiotietokannan kanssa, MQ-ratkaisut ovat oikea valinta.

Blogin viesti “

Apache Kafka vs. perinteinen väliohjelmisto (MQ, ETL, ESB)

”Ja

diat / videotallenne Apache Kafkan vertailusta väliohjelmaan

selitä yksityiskohtaisemmin, kuinka tapahtumien suoratoisto ja muut käsitteet, kuten erä- tai jonopohjaiset integraatiot, täydentävät toisiaan (ja milloin on järkevää korvata vanhat järjestelmät tapahtumien suoratoistoilla).


Vastaus 3:

Nämä vastaukset ovat kehittäjille. Annan antaa sinulle järkevän skenaarion, jossa Kafkaa jne. Voidaan käyttää.

Amazin.com

on suuri online-myyjä, joka myy erilaisia ​​tuotteita verkkosivustonsa kautta. Myynti on hyvää, liiketoiminta on hyvää. Eräänä päivänä ylimmän johdon tietoon tulee, että he menettävät osan ostajistaan ​​kilpailevalle

Flipmart.com

!

Jotkut tuotteen omistajat ehdottavat tämän tyydyttämiseksi, että he ottavat käyttöön palkitsemisjärjestelmän, joka antaa ihmisille joitain pisteitä tapahtumaa kohden, joka itkee ajan myötä ja antaa sinulle mahdollisuuden saada jotain ilmaiseksi tulevaisuudessa. Tämä tarkoittaa, että jos tuotteesi ovat suunnilleen samat kahdella sivustolla, valitset todennäköisesti Amazinin, koska keräät pisteitä siellä.

Nyt uusi "Pisteet" -tiimi luodaan. Kuinka tämä joukkue saa tarvitsemansa tiedot (maksun jälkeen kerätyt tiedot), kuten hinta jne. Näiden pisteiden luomiseksi?

Yksi ilmeinen tapa on kysyä kaikkien viimeisen tunnin ostosten ostotietokannat ja siirtyä jakamaan pisteitä töihin. Muutama ongelma:

  1. Tämä on suuri rasitus tietokantajärjestelmälle, sillä Amazin tallentaa miljoonia ostoja minuutissa, ja tietokantaa aiotaan jakaa yksinkertaisesti yrittämällä saada niistä muutaman minuutin arvoisia ostoksia, mikä edellyttää miljoonien tietojoukkojen palauttamista
  2. Kun mainittu tietojoukko (täynnä miljoonia rivejä) palautetaan, pistejärjestelmäsi ei ehkä pysty käsittelemään sitä kaikkia samanaikaisesti.
  3. Vaikka se pystyy käsittelemään sitä, se ei ehkä pidä paikkaansa, kun Amazin laajenee vielä enemmän tai kun lomakausi tulee noin, 2 miljoonaa ostoa sekunnissa muuttuu 6 miljoonaksi.

Eikö olisi hienoa, jos voisimme pyytää ostosovellusten takana olevaa ryhmää asettamaan kaikki ostonsa tukevaan hajautettuun lokiin ja luomaan sen, mikä on pohjimmiltaan ostotilaustietojen jono, jota voimme ostaa missä saatavuus sallii 0 mahdollisuuden vaikuttaa hankintajärjestelmään?

Se on Kafka.

Ja huomaa, etten sanonut, että se on RabbitMQ. Siellä on selvästi enemmän eroja keskusteltaviksi, mutta kanin MQ on yleensä suositeltava suorituskykylle alle 50000 merkintää sekunnissa. Tai oliko se 500000, voit korjata minut.


Vastaus 4:

Jonorakenne pitää kohteita; sisältö toimitetaan vastaanottojärjestyksessä. Kuvittele ihmisten menevän linja-autoon muodostaen linjan.

Käytämme jonoja, kun haluamme tiettyjen asioiden tapahtuvan järjestyksessä. Kaikkia ei tapahdu samanaikaisesti. Kuvittele tehdas, jolla raakatuotteet kuljetetaan eri vaiheiden läpi ennen kuin ne tulevat valmiiksi tuotteiksi.

Joten jonoja käytetään, kun

  • on tarve asynkroniselle prosessoinnille
  • asioiden on oltava mittakaavassa

Jonoja ei voida käyttää pysyvänä tallennusvälineenä, mutta niitä voidaan käyttää ohimenevänä muistina. Kuvittele ihmisten muodostuvan linjaa matkustettaessa linja-autoon, haluamme varmasti päästä linja-autoon oikealle.


Vastaus 5:

Niitä käytetään useissa senarioissa. Jotkut niistä ovat:

Kun järjestelmän A tuottamat tiedot / pyynnöt ovat paljon enemmän kuin mitä prosessointijärjestelmä B voi käsitellä reaaliajassa.

Jos prosessointijärjestelmä ei ole jatkuvasti toiminnassa. Nämä voivat olla cron-työt, jotka heräävät kerran tietyn ajan ja käsittelevät kaikki jonossa olevat tiedot. Tämä voi auttaa vähentämään laitteiston käyttöä, jos tietojen reaaliaikaista käsittelyä ei vaadita.

Jos generaattorijärjestelmän tiedot on levitettävä useille kuluttajille. Jonot auttavat tekemään sen yksinkertaisella tavalla.

Jonon valinta riippuu sovelluksesta, jota varten sitä käytetään, ja suorituskyvystä, jota yksi tarvitsee järjestelmästä.