Sobes.tech
Junior — Middle

Kterého message brokera byste raději používali — Kafka nebo RabbitMQ?

sobes.tech AI

Odpověď od AI

Volba mezi Kafka a RabbitMQ závisí na konkrétních požadavcích projektu.

Kafka je vhodnější pro zpracování velkých toků dat s vysokou propustností a ukládáním zpráv (záznam událostí). Je zaměřen na škálovatelnost a odolnost a je vhodný pro analytické systémy, streamové zpracování a událostní systémy.

RabbitMQ je klasický broker zpráv podporující různé modely výměny (fronty, témata) a je vhodný pro úkoly s garantovaným doručením, složitým směrováním a integrací mezi službami.

Pokud potřebujete vysoký výkon a zpracování velkých objemů dat, použijte Kafka. Pokud je důležitá flexibilní směrování a spolehlivé doručení, použijte RabbitMQ.

Příklad použití Kafka v Go (s knihovnou 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: "test_topic",
        Value: sarama.StringEncoder("Ahoj 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)
}