Sobes.tech
Junior — Middle

Jaké jsou hlavní vzory interakce Kafka s mikroservisy, které znáte?

sobes.tech AI

Odpověď od AI

Hlavní vzory interakce Kafka s mikroservisy:

  1. Event-Driven Architecture (EDA) — mikroservisy publikují události v Kafka, jiné mikroservisy se na tyto události přihlašují a na ně reagují. Jedná se o asynchronní výměnu zpráv, která umožňuje snížit propojenost mezi službami.

  2. Segregace odpovědnosti příkazů a dotazů (CQRS) — příkazy a dotazy jsou zpracovávány různými mikroservisy a Kafka se používá k přenosu příkazů nebo událostí změny stavu.

  3. Event Sourcing — všechny změny stavu mikroservisu jsou ukládány jako sekvence událostí v Kafka, což umožňuje obnovu stavu nebo audit.

  4. Logová agregace — Kafka se používá ke sběru logů a metrik z mikroservisů pro pozdější analýzu.

Příklad jednoduchého producenta v Go s použitím knihovny 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()

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

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