Sobes.tech
Junior — Middle

Jakie znasz główne wzorce interakcji Kafka z mikroserwisami?

sobes.tech AI

Odpowiedź od AI

Główne wzorce interakcji Kafka z mikroserwisami:

  1. Architektura oparta na zdarzeniach (EDA) — mikroserwisy publikują zdarzenia w Kafka, inne mikroserwisy subskrybują te zdarzenia i na nie reagują. Jest to asynchroniczna wymiana wiadomości, która pozwala zmniejszyć powiązania między usługami.

  2. Segregacja odpowiedzialności poleceń i zapytań (CQRS) — polecenia i zapytania są obsługiwane przez różne mikroserwisy, a Kafka służy do przesyłania poleceń lub zdarzeń zmiany stanu.

  3. Event Sourcing — wszystkie zmiany stanu mikroserwisu są przechowywane jako sekwencja zdarzeń w Kafka, co umożliwia odtworzenie stanu lub audyt.

  4. Agregacja logów — Kafka jest używany do zbierania logów i metryk z mikroserwisów do późniejszej analizy.

Przykład prostego producenta w Go z użyciem biblioteki 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("Wiadomość jest przechowywana w partycji %d, offset %d\n", partition, offset)
}