Sobes.tech
Junior — Middle

Welche grundlegenden Interaktionsmuster von Kafka mit Microservices kennst du?

sobes.tech KI

Antwort von AI

Die wichtigsten Interaktionsmuster von Kafka mit Microservices:

  1. Ereignisgesteuerte Architektur (EDA) — Microservices veröffentlichen Ereignisse in Kafka, andere Microservices abonnieren diese Ereignisse und reagieren darauf. Dies ist ein asynchroner Nachrichtenaustausch, der die Kopplung zwischen Diensten verringert.

  2. Command Query Responsibility Segregation (CQRS) — Befehle und Abfragen werden von verschiedenen Microservices verarbeitet, und Kafka wird verwendet, um Befehle oder Ereignisse von Zustandsänderungen zu übertragen.

  3. Event Sourcing — alle Zustandsänderungen des Microservice werden als Ereignisse in Kafka gespeichert, was die Wiederherstellung des Zustands oder Audits ermöglicht.

  4. Log-Aggregation — Kafka wird verwendet, um Logs und Metriken von Microservices für die spätere Analyse zu sammeln.

Beispiel eines einfachen Producers in Go mit der Bibliothek 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("Nachricht wird im Partition %d, Offset %d gespeichert\n", partition, offset)
}