Alkaen Apache Kafkasta

(13. kesäkuuta 2019)

Mikä on Apache Kafka?

Apache Kafka on alun perin hajautettu julkaisu-tilaus -perusteinen vain liitteen sisältävä viestialusta kehittänyt LinkedIn ja Myöhemmin lahjoittanut Apache Foundationille .

(* Kuva on kaunistettava)

Käytä tapauksia

  • Viestit
  • Lokien yhdistäminen
  • Suoratoiston käsittely
  • Suorita loki
  • Tapahtumahankinta jne.

Kuinka se toimii?

Kafka toimii pub-sub-mallissa. Joten tulee olemaan kuluttaja / kuluttajaryhmä ja kustantaja.

Tuottaja julkaisee tietoja tietystä aiheesta ja aiheeseen tilattu kuluttaja kuluttaa tietoja. Useat tuottajat voivat julkaista saman aiheen, mutta vain yksi kuluttaja voi kuluttaa tietoja aiheesta kerrallaan.

Nyt voit kysyä, onko vain yksi kuluttaja saa kuluttaa aiheesta kerrallaan, ja jos tapahtumia on tuhansia, miten ne skaalataan?

Okei. Tällöin voimme jakaa aiheen osioihin skaalautuvuuden saavuttamiseksi.

Kun teemme aiheen osion, jokaisella osion viestillä on offset\_id / message\_id. Vasemmassa kuvassa olemme tehneet 3 osiota ja kukin tuottaja lähettää tapahtuman tiettyyn osioon. Ja kuluttaja lukee tietystä osiosta. Jos lähetämme nyt 300 tapahtumaa / s, se jaetaan kolmeen, joten jokaisella osiolla on 100 viestiä / s. Tällä tavoin voimme saavuttaa kuormituksen tasapainottamisen. Kun teemme osion, Kafka varmistaa vain osiotason viestijärjestyksen . Jotta osioinnilla saadaan järjestys, meidän on käytettävä avainta .

Jos tapahtumia lisääntyy, on tehtävä enemmän osioita ja lisättävä lisää kuluttajia skaalattavaksi ja kuormituksen tasapainottamiseksi .

Kun olemme vastaanottaneet tapahtuman, meidän on tehtävä loki Kafkalle, joten Kafka ymmärtää, että tapahtuma on käsitelty, eikä Kafka lähetä sitä uudelleen. Jos sovelluksen murskaaminen keskellä Kafka lähettää tapahtuman uudelleen käsiteltäväksi.

Replikointitekijä:

Replikointitekijä on se, kuinka Kafkan tiedot replikoidaan eri Kafka-välittäjien kanssa. Oletetaan, että olemme valinneet replikointikertoimen N = 3, tiedot replikoidaan vielä kahdelle välittäjälle. Joten Kafka toimii edelleen, jos N-1-välittäjä kaatuu, koska ainakin yksi välittäjä on elossa tietojen kanssa, jotta se pysyisi toiminnassa.

Mikä on Apache Zookeeper?

Apache Zookeeper on keskitetty palvelu hajautetuille järjestelmille hierarkkiseen avainarvosäilöön, jota käytetään hajautetun määrityspalvelun, synkronoinnin tarjoamiseen palvelu ja nimirekisteri suurille hajautetuille järjestelmille. Apache Kafka ei toimi ilman Zookeeperia. Kafka-klusterin hallinta, jos välittäjä nousee tai laskee, jos uusi aihe luodaan … .tyyppiset tiedot synkronoidaan eri Kafka-välittäjien kanssa Zookeeperin kautta.

Spinup Kafka>

docker-compose up

Kuluttaja (Golang)>

Tuottaja (Kotlin)>

Tulos>

Waiting for messages...Topic : users.notification
Partition : 0
Offset : 1
Value : hello

Resurssit:

1. github.com/confluentinc/confluent-kafka-go
2. compile group: "io.opentracing.contrib", name: "opentracing-kafka-client", version: "0.1.2"

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *