Sobes.tech
Junior — Middle

Aké sú hlavné vzory interakcie Kafka s mikroservismi, ktoré poznáte?

sobes.tech AI

Odpoveď od AI

Hlavné vzory interakcie Kafka s mikroslužbami:

  1. Event-Driven Architecture (EDA) — mikroslužby publikujú udalosti v Kafka, ďalšie mikroslužby sa na tieto udalosti prihlásia a na ne reagujú. Ide o asynchrónnu výmenu správ, ktorá umožňuje znížiť prepojenosť medzi službami.

  2. Segregácia zodpovedností príkazov a dopytov (CQRS) — príkazy a dopyty sú spracovávané rôznymi mikroslužbami a Kafka sa používa na prenos príkazov alebo udalostí zmeny stavu.

  3. Event Sourcing — všetky zmeny stavu mikroslužby sa ukladajú ako sekvencia udalostí v Kafka, čo umožňuje obnovu stavu alebo audit.

  4. Logová agregácia — Kafka sa používa na zber logov a metrík z mikroslužieb na neskoršiu analýzu.

Príklad jednoduchého producenta v Go s použitím knižnice sarama:

package main

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

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

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

    partition, offset, err := producent.SendMessage(sprava)
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("Správa je uložená v partition %d, offset %d\n", partition, offset)
}