Как работает message broker?

Middle
1.1k просмотров
AFK Offer AI

Message broker — промежуточник между сервисами, который принимает, хранит и доставляет сообщения. Producer отправляет сообщение в брокер, consumer забирает. Они не знают друг о друге — это decoupling.

Основные брокеры: Kafka (event streaming, хранит навсегда, высокий throughput), RabbitMQ (классическая очередь, routing, гибкие exchange-ы), NATS (легковесный, для микросервисов).

// producer (Kafka)
writer := kafka.NewWriter(kafka.WriterConfig{
    Brokers: []string{"localhost:9092"},
    Topic:   "orders",
})
writer.WriteMessages(ctx, kafka.Message{
    Key:   []byte("order-123"),
    Value: []byte({"amount": 100}),
})

Два паттерна доставки: point-to-point (один consumer обрабатывает сообщение) и pub/sub (все подписчики получают копию). Kafka использует consumer groups — внутри группы сообщение получает один consumer, между группами — все. Брокер решает проблему пиковых нагрузок (буферизация), отказоустойчивости и временного связывания.

Следующий вопрос

Как работает io.Reader/io.Writer?