Sobes.tech
Junior — Middle

¿Cuáles son los patrones principales de interacción de Kafka con microservicios que conoces?

sobes.tech AI

Respuesta de la IA

Los patrones principales de interacción de Kafka con microservicios:

  1. Arquitectura basada en eventos (EDA) — los microservicios publican eventos en Kafka, otros microservicios se suscriben a estos eventos y reaccionan a ellos. Es un intercambio de mensajes asíncrono que permite reducir la acoplamiento entre servicios.

  2. Segregación de responsabilidades de comandos y consultas (CQRS) — los comandos y consultas son procesados por diferentes microservicios, y Kafka se usa para transmitir comandos o eventos de cambio de estado.

  3. Event Sourcing — todos los cambios de estado del microservicio se almacenan como una secuencia de eventos en Kafka, lo que permite restaurar el estado o realizar auditorías.

  4. Agregación de logs — Kafka se usa para recopilar logs y métricas de los microservicios para análisis posterior.

Ejemplo de un productor simple en Go usando la biblioteca 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("El mensaje se almacena en la partición %d, offset %d\n", partition, offset)
}