Sobes.tech
Junior — Middle

Koji su osnovni obrasci interakcije Kafka sa mikroservisima koje poznajete?

sobes.tech АИ

Одговор од АИ

Glavni obrasci interakcije Kafka s mikroservisima:

  1. Event-Driven Architecture (EDA) — mikroservisi objavljuju događaje u Kafka, drugi mikroservisi se pretplaćuju na te događaje i reaguju na njih. Ovo je asinhrona razmena poruka koja omogućava smanjenje povezanosti između servisa.

  2. Segregacija odgovornosti komandi i upita (CQRS) — komande i upiti se obrađuju od strane različitih mikroservisa, a Kafka se koristi za prenos komandi ili događaja promene stanja.

  3. Event Sourcing — sve promene stanja mikroservisa se čuvaju kao sekvenca događaja u Kafka, što omogućava obnavljanje stanja ili audit.

  4. Log Aggregation — Kafka se koristi za prikupljanje logova i metrika od mikroservisa za kasniju analizu.

Primer jednostavnog proizvođača u Go koristeći biblioteku sarama:

package main

import (
    "github.com/Shopify/sarama"
    "log"
)

func main() {
    producer, err := sarama.NewSyncProducer([]string{"localhost:9092"}, nil)
    if err != nil {
        log.Fatal(err)
    }
    defer producer.Close()

    msg := &sarama.ProducerMessage{
        Topic: "events",
        Value: sarama.StringEncoder("Hello Kafka"),
    }

    partition, offset, err := producer.SendMessage(msg)
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("Poruka je sačuvana u particiji %d, offset %d\n", partition, offset)
}